home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Hot Mix 17
/
Hot Mix 17.iso
/
HM17_SGI
/
html
/
vendors
/
adobe
/
software
/
illustrator_5.5.1
/
Installill2.csh
< prev
next >
Wrap
Linux/UNIX/POSIX Shell Script
|
1997-06-17
|
103KB
|
3,311 lines
#!/bin/sh
# #########################################################################
#
# Copyright (c) 1994 Adobe System Incorporated
# All Rights Reserved
#
# ***********************************************************************
# If you copy this script off of the CD-ROM and then edit it, this
# script will only work if you pass it the optional parameter "CDDIR=xxx",
# where "xxx" is the mount point for the CD-ROM (e.g., /cdrom).
# ***********************************************************************
#
# In general, this script accepts command line parameters in the form:
# xxx=yyy
# where "xxx" is a shell variable name and "yyy" is the value.
# For each parameter with an equal sign, this script does an eval on the parameter.
# Probably, CDDIR is the only parameter which makes sense to alter.
#
##########################################################################
export PATH
export HOME
ABORTCMD='${RM} $PKGLISTFILE; echo ""; echo ""; echo "*** Installation canceled ***"; echo ""; exit 1;'
# For echo without newline under BSD, set EB and EE variables
EB="-n "
EE=""
LASTLINECMD="tail -1"
# Things that are either platform-specific or potentially platform-specific.
osname="UNKNOWN"
osversion="UNKNOWN"
osmajorminor="UNKNOWN"
osmajor="UNKNOWN"
osminor="UNKNOWN"
if [ -x /bin/uname ] ; then
osname=`/bin/uname -s`
# 64 bit IRIX6 returns IRIX64 for uname -s
firstfour=`echo "$osname" | sed -e 's/^\(....\).*$/\1/g'`
if [ "$firstfour" = "IRIX" ] ; then
osname="IRIX"
fi
osversion=`/bin/uname -r`
check=`echo "$osversion" | egrep '^[0-9]\.[0-9]*'`
if [ "$check" != "" ] ; then
# osmajorminor will be like "4.2". osmajor: "4". osminor:"2".
osmajorminor=`echo "$osversion" | sed -e 's/^\([0-9]\.[0-9]\).*/\1/'`
osmajor=`echo "$osversion" | sed -e 's/^\([0-9]\).*/\1/'`
osminor=`echo "$osversion" | sed -e 's/^[0-9]\.\([0-9]\).*/\1/'`
fi
fi
if [ $osname = "SunOS" ] ; then
STDBINDIR="/usr/bin"
RETURNKEYNAME="Return"
if [ $osmajor -ge 5 ] ; then
DFTTAPEPATH=/dev/rmt/0
# For echo without newline under Sys V, set EB and EE variables
EB=""
EE="\c"
PATH=/usr/sbin:/usr/bin:/bin:/usr/bin/X11:/usr/openwin/bin:/sbin:/usr/sbin:/etc:/usr/etc
WHOAMI=`$STDBINDIR/id | $STDBINDIR/sed 's/^[^(]*.\([^)]*\).*/\1/'`
DFTDAEMONDIR=sun4/sunOS5
DFCMD="$STDBINDIR/df -k"
DUCMD="$STDBINDIR/du -sk"
DUFACTOR=1
NLINES_CMD="$STDBINDIR/wc -l"
else
DFTTAPEPATH=/dev/rst0
# For echo without newline under BSD, set EB and EE variables
EB="-n "
EE=""
PATH=/usr/ucb:/usr/bin:/bin:/usr/bin/X11:/usr/openwin/bin:/sbin:/etc:/usr/etc
WHOAMI=`/usr/ucb/whoami`
DFTDAEMONDIR=sun4/sunOS4
DFCMD="$STDBINDIR/df"
DUCMD="$STDBINDIR/du -s"
DUFACTOR=1
NLINES_CMD="/usr/ucb/wc -l"
fi
CLEAR=/usr/ucb/clear
DFTCDROMPATH=/cdrom
DFTTOPDIR=/usr/adobe
KEYSYMDBFILE=/usr/openwin/lib/XKeysymDB
KBYTES_AVAIL_FIELD=4
GETHOSTID="hostid"
RSH="/usr/ucb/rsh"
elif [ $osname = "IRIX" ] ; then
STDBINDIR="/usr/bin"
RETURNKEYNAME="Enter"
DFTTAPEPATH=/dev/tape
DFTCDROMPATH=/CDROM
DFTTOPDIR=/usr/adobe
KEYSYMDBFILE=/usr/lib/X11/XKeysymDB
DFCMD="$STDBINDIR/df -k"
DUCMD="$STDBINDIR/du -sk"
DUFACTOR=1
KBYTES_AVAIL_FIELD=5
GETHOSTID='/etc/sysinfo | /usr/bsd/head -2 | $STDBINDIR/tail -1 | $STDBINDIR/awk '\''{ printf "%s%s%s%s", $1, $2, $3, $4; }'\'
CLEAR=/usr/bsd/clear
WHOAMI=`$STDBINDIR/id | $STDBINDIR/sed 's/^[^(]*.\([^)]*\).*/\1/'`
# For echo without newline under Sys V, set EB and EE variables
EB=""
EE="\c"
PATH=/usr/sbin:/sbin:/usr/bin:/bin:/usr/bsd:/usr/bin/X11:/usr/openwin/bin:/etc:/usr/etc
DFTDAEMONDIR=sgi/v5
NLINES_CMD="$STDBINDIR/wc -l"
RSH="/usr/bsd/rsh"
elif [ $osname = "HP-UX" ] ; then
STDBINDIR="/bin"
RETURNKEYNAME="Return"
DFTTAPEPATH=/dev/rmt/0m
DFTCDROMPATH=/cdrom
DFTTOPDIR=/usr/adobe
KEYSYMDBFILE=/usr/lib/X11/XKeysymDB
DFCMD="/usr/bin/bdf"
DUCMD="$STDBINDIR/du -s"
DUFACTOR=.5
KBYTES_AVAIL_FIELD=4
GETHOSTID="$STDBINDIR/uname -i"
CLEAR="/usr/bin/clear"
WHOAMI=`/usr/bin/whoami`
# For echo without newline under Sys V, set EB and EE variables
EB=""
EE="\c"
PATH=/usr/sbin:/sbin:/usr/bin:/bin:/usr/bin/X11:/etc:/usr/etc
DFTDAEMONDIR="???/???"
NLINES_CMD="$STDBINDIR/wc -l"
RSH="/usr/bin/remsh"
fi
if [ "$osname" = "UNKNOWN" -o "$osversion" = "UNKNOWN" ] ; then
echo ""
echo "Unrecognized operating system: $osname $osversion."
echo "Cannot install: $DISTRIB_DESC"
eval ${ABORTCMD}
fi
export PATH
TAR_OPTS_C="-cf"
TAR_OPTS_X="-xfv"
TAR="$STDBINDIR/tar"
MKDIR="$STDBINDIR/mkdir -p "
RMDIR="$STDBINDIR/rmdir "
CP="$STDBINDIR/cp"
LN="$STDBINDIR/ln -s"
RM="$STDBINDIR/rm -f"
MV="$STDBINDIR/mv"
CAT="$STDBINDIR/cat"
SED="$STDBINDIR/sed"
AWK="$STDBINDIR/awk"
EXPR="$STDBINDIR/expr"
PWDCMD="$STDBINDIR/pwd"
DIRCP="$STDBINDIR/cp -pr"
DIRRM="$STDBINDIR/rm -rf"
LS="$STDBINDIR/ls"
# On some systems, cd is a shell intrinsic
# Also, executable is not always compatible with scripts, so
# just use plain "cd"
CD="cd"
# Temporary directory used by this install script.
if [ "$INSTALLTEMPDIR" = "" ] ; then
INSTALLTEMPDIR="/tmp"
fi
PKGLISTFILE=$INSTALLTEMPDIR"/Packages."$$
# Installation device (CDROM or TAPE)
if [ "$INSTALLDEVICE" = "" ] ; then
INSTALLDEVICE="CDROM"
fi
# Make sure we have proper access to installation temp file.
if [ ! -w $INSTALLTEMPDIR ] ; then
echo "Permission denied in writing to directory $INSTALLTEMPDIR."
echo "Please change permissions and rerun this script."
echo ""
exit 1
fi
if [ -f $PKGLISTFILE -a ! -w $PKGLISTFILE ] ; then
echo "Permission denied in creating file $PKGLISTFILE."
echo "Please change permissions and rerun this script."
echo ""
exit 1
fi
# Description of this distribution.
DISTRIB_DESC="Adobe Illustrator Version 5.5.1 for SGI IRIX 5.2"
# Whether this software is protected by an electronic license (y or n).
if [ "$ELECTRONIC_LICENSE" = "" ] ; then
ELECTRONIC_LICENSE="n"
fi
# Name of file containing the electronic license
# (relative to directory containing this install script).
if [ "$ELECTRONIC_LICENSE_FILE" = "" ] ; then
ELECTRONIC_LICENSE_FILE="license"
fi
# Which packages to install (prompt or ALL or list of numbers)
WHICH_PACKAGES="prompt"
if [ "$WHICH_PACKAGES" = "" ] ; then
WHICH_PACKAGES="prompt"
fi
# Descriptions of packages included with this distribution.
# NPKGS indicates how many packages are included in this distribution.
# Following NPKGS is the printed table which appears to the user when
# choosing which packages to install.
# This table is stored in a temporary file while the install script runs.
# PKG_$i_PKGFULLDESC: Full product description (version, platform included)
# PKG_$i_PKGDESC: Descriptive product name
# PKG_$i_VERSIONDESC: Descriptive product version
# PKG_$i_PLATFORMDESC: Description of platform required to run package
# PKG_$i_KBYTES: Space required for package (in kilobytes. No trailing K)
# PKG_$i_PKGABBR: Abbreviated product name (no spaces or underscores)
# PKG_$i_PKGVERS: Abbreviated version number (no spaces or underscores)
# PKG_$i_BINLINKS: List of programs requiring auto sym links to $DFTSYMLINKDIR
# PKG_$i_FONTDIR: Directory to put FONTPATTERN fonts in
# PKG_$i_FONTUPR: UPR file describing FONTPATTERN fonts
# PKG_$i_XKEYSYMDB: Set this to "1" if package required updates to XKeysymDB
# PKG_$i_SCRIPT: Name of script to run after package is installed (or empty string)
# PKG_$i_LMFEATURE: Describes components requiring a password (null string if none)
# PKG_$i_LMVERSION: Corresponding FlexLM version string.
# PKG_$i_LMQUOTES: Corresponding FlexLM string within quotes.
# PKG_$i_CDROM_FROMFILES: Name of files on CDROM to copy into install tree.
# Relative to dir with install script.
# PKG_$i_CDROM_TOFILES: What to rename the files specified in CDROM_FROMFILES.
# Relative to base dir for product tree.
# PKG_$i_FORCED_PKGS: Numbers of other packages whose installation is forced by
# installation of this package. Default: none.
# PKG_$i_OLD_VERSION_ACTION: What to do if same package is already installed
# in same location: "quiet:leavealone", "quiet:overwrite",
# "prompt:oktodelete", "prompt:leavealone/overwrite".
# Default: "prompt:oktodelete".
# PKG_$i_HIDDEN: Set this to "1" if package should be hidden from user.
# Hidden packages have to be at end of list! Default: 0.
# PKG_$i_PSRES_WRITEFILE: Set to "y" if package should write out
# custom/SITE_PSRESOURCEPATH. Default: use value of PSRES_WRITEFILE.
# PKG_$i_LM_WRITEFILE: Set to "y" if package should write out
# custom/LM_WRITEFILE. Default: use value of LM_WRITEFILE.
# PKG_$i_AUTOSYMLINK: Value for AUTOSYMLINK for this package. Default: use AUTOSYMLINK.
# Only values that make sense: 1 or 0.
# PKG_$i_INSTALL_METHOD: Method to use to install package.
# "tarfile" means there is a *.tar file and to use "tar xf" to install.
# "tar-to-tar" means there are flat files that should be copied by
# (cd <sourcedir> tar cf - <files> | cd <destdir> tar xfv -)
# "cp" means to do a directory copy from CD to disk.
# Default: "tarfile".
# PKG_$i_TARFILE: If INSTALL_METHOD="tarfile" or "" and if using a different tarfile
# than $CDARCHIVEFILE, name of tarfile that contains this package.
# PGK_$i_FILES: If INSTALL_METHOD="tar-to-tar" or "cp", list of files to copy directly from CD
# onto user's disk.
# PGK_$i_FILES_DIRECTORY: If INSTALL_METHOD="tar-to-tar" or "cp", directory on CD
# (relative to install script) for PKG_$i_FILES.
NPKGS="2"
cat << EOF > $PKGLISTFILE
# Package Description Version Platform KBytes
-- ------------------- ------- -------- ------
1 AdobeIllustrator 5.5.1 IRIX 5.2 29850
EOF
PKG_1_PKGFULLDESC="Adobe Illustrator Version 5.5.1 for IRIX 5.2"
PKG_1_PKGDESC="Adobe Illustrator"
PKG_1_VERSIONDESC="Version 5.5.1"
PKG_1_PLATFORMDESC="IRIX 5.2/5.3/6.2"
PKG_1_KBYTES="29850"
PKG_1_PKGABBR="Illustrator"
PKG_1_PKGVERS="5.5"
PKG_1_BINLINKS="bin/illustrator bin/separator"
PKG_1_XKEYSYMDB="0"
PKG_1_SCRIPT="installscripts/postinstallq"
PKG_1_LMFEATURE="AdobeIllustrator"
PKG_1_LMVERSION="5.500"
PKG_1_LMQUOTES=""
PKG_1_CDROM_FROMFILES="readme getstart.ps support.ps KeyMapping.ps"
PKG_1_CDROM_TOFILES="readme doc/getstart.ps doc/support.ps doc/KeyMapping.ps"
PKG_1_FORCED_PKGS="3"
PKG_1_OLD_VERSION_ACTION="prompt:leavealone/overwrite"
PKG_1_HIDDEN="0"
PKG_1_TARFILE=""
PKG_2_PKGFULLDESC="DPS NX Basic Version 2.1.1 for "
PKG_2_PKGDESC="DPS NX Basic"
PKG_2_VERSIONDESC="Version 2.1.1"
PKG_2_PLATFORMDESC="IRIX 5.2/5.3/6.2"
PKG_2_KBYTES="4178"
PKG_2_PKGABBR="DPSNXBasic"
PKG_2_PKGVERS="2.1.1"
PKG_2_BINLINKS="bin/dpsnx.agent"
PKG_2_XKEYSYMDB="0"
PKG_2_SCRIPT=""
PKG_2_LMFEATURE=""
PKG_2_LMVERSION=""
PKG_2_LMQUOTES=""
PKG_2_CDROM_FROMFILES=""
PKG_2_CDROM_TOFILES=""
PKG_2_FORCED_PKGS=""
PKG_2_OLD_VERSION_ACTION="prompt:leavealone/overwrite"
PKG_2_HIDDEN="1"
PKG_2_TARFILE="../nxbasic/nxbasic.tar"
PKG_2_SCRIPT="installscripts/postinstall"
# Determine how many un-hidden (i.e., visible) packages are included.
NPKGS_VISIBLE=0
package_num=1
while [ $package_num -le $NPKGS ] ; do
packagehidden=`eval echo '$PKG_'$package_num'_HIDDEN'`
if [ "$packagehidden" != "1" ] ; then
NPKGS_VISIBLE=`expr $NPKGS_VISIBLE + 1`
fi
package_num=`expr $package_num + 1`
done
# Name of CD-ROM archive file.
CDARCHIVEFILE="illus.tar"
# Name of directory where CD is mounted.
# If null, then directory is figured out automatically by script.
#CDDIR=""
# Determine name of this file on CDROM.
if [ "$CDDIR" = "" ] ; then
CDDIR=`expr "$0" : '\(.*\)/'`
abspath=`expr "$0" : '^/'`
if [ "$CDDIR" = "" -o "$CDDIR" = "." ] ; then
CDDIR=`pwd`
elif [ "$abspath" != 1 ] ; then
CDDIR=`pwd`/$CDDIR
fi
fi
# Whether you must be root to run the installer.
ROOT_REQUIRED="1"
if [ "$ROOT_REQUIRED" = "" ] ; then
ROOT_REQUIRED="1"
fi
# Whether to prompt for root directory (y or n)
ROOTDIR_PROMPT="y"
if [ "$ROOTDIR_PROMPT" = "" ] ; then
ROOTDIR_PROMPT="y"
fi
# Whether to prompt for license data file location (y or n)
LICENSE_PROMPT="n"
if [ "$LICENSE_PROMPT" = "" ] ; then
LICENSE_PROMPT="y"
fi
# Directory for security files.
# If a relative path is given, then the path is relative to
# the directory into which the software is installed.
if [ "$DFTSECURITYDIR" = "" ] ; then
DFTSECURITYDIR="/usr/local/flexlm/licenses"
fi
# Directory for Adobe license daemon.
# If a relative path is given, then the path is relative to
# the directory above the directory containing the license file.
DAEMONDIR="sgi/v5"
if [ "$DAEMONDIR" = "" ] ; then
DAEMONDIR="$DFTDAEMONDIR"
fi
# License security file within license security directory.
if [ "$DFTSECURITYFILE" = "" ] ; then
DFTSECURITYFILE="license.dat"
fi
# Whether to install automatic symbolic links for programs
# (1 or 0 or prompt or makescript)
AUTOSYMLINK="y"
if [ "$AUTOSYMLINK" = "" ] ; then
AUTOSYMLINK="makescript"
fi
# Prompt to give for whether to establish automatic symbolic links
if [ "$SYMLINK_PROMPT_1_TEXT" = "" ] ; then
SYMLINK_PROMPT_1_TEXT="This installation script places programs and/or scripts in locations that
probably are not on your PATH. Do you want symbolic links for the programs
and/or scripts installed in another directory (e.g., /usr/bin or /usr/local/bin)?"
fi
# Prompt to give for whether to establish automatic symbolic font links
if [ "$FONTLINK_PROMPT_1_TEXT" = "" ] ; then
FONTLINK_PROMPT_1_TEXT="This installation script places fonts in locations that
probably are not on your PSRESOURCEPATH. Do you want symbolic links for the fonts
installed in the directory for your site (e.g., /usr/psres)?"
fi
# Prompt to ask for directory for automatic symbolic links
if [ "$SYMLINK_PROMPT_2_TEXT" = "" ] ; then
SYMLINK_PROMPT_2_TEXT="Enter name of alternate directory for program launch scripts"
fi
# Location of script which will be created if AUTOSYMLINK=makescript
SYMLINKSCRIPT="/tmp/illustrator.makelinks"
if [ "$SYMLINKSCRIPT" = "" ] ; then
SYMLINKSCRIPT="/tmp/adobe_install_make_links"
fi
# Whether to prompt for directory for installing automatic symbolic links
# (y or n)
SYMLINKDIR_PROMPT="n"
if [ "$SYMLINKDIR_PROMPT" = "" ] ; then
SYMLINKDIR_PROMPT="y"
fi
# Directory to install automatic symbolic links for programs
# If a relative path is given, then the path is relative to
# the directory into which the software is installed.
if [ "$DFTSYMLINKDIR" = "" ] ; then
DFTSYMLINKDIR="/usr/bin"
fi
# Directory relative to installation root dir for keeping XKeysymDB file.
if [ "$XKEYSYMDBDIR" = "" ] ; then
XKEYSYMDBDIR="installscripts"
fi
# File name for XKeysymDB fixes relative to XKEYSYMDBDIR.
if [ "$XKEYSYMDBFILE" = "" ] ; then
XKEYSYMDBFILE="XKeysymDB"
fi
# Whether to prompt for PS resource path (y or n)
PSRES_PROMPT="n"
if [ "$PSRES_PROMPT" = "" ] ; then
PSRES_PROMPT="n"
fi
# Whether to write out a file pointing to PSRES_PATH (y or n)
PSRES_WRITEFILE="y"
if [ "$PSRES_WRITEFILE" = "" ] ; then
PSRES_WRITEFILE="n"
fi
# Default list of directories into which application will look for
# PostScript resources
if [ "$PSRES_DEFAULT" = "" ] ; then
PSRES_DEFAULT='$HOME/psres:/usr/psres'
fi
# File name to write out value of PSRES_PATH (for PSRES_WRITEFILE=y)
# If a relative path is given, then the path is relative to
# the directory into which the software is installed.
if [ "$PSRES_FILE" = "" ] ; then
PSRES_FILE="custom/SITE_PSRESOURCEPATH"
fi
# Whether to write out a file pointing to LM_LICENSE_FILE (y or n)
LM_WRITEFILE="y"
if [ "$LM_WRITEFILE" = "" ] ; then
LM_WRITEFILE="n"
fi
# File name to write out value of LM_LICENSE_FILE (for LM_WRITEFILE=y)
# If a relative path is given, then the path is relative to
# the directory into which the software is installed.
if [ "$LM_FILE" = "" ] ; then
LM_FILE="custom/LM_LICENSE_FILE"
fi
# Number of times prompting loops are permitted to loop.
# This is necessary on some platforms where double-clicking
# on a script from the desktop causes script to run with
# Return automatically supplied to all possible prompts.
if [ "$LOOP_LIMIT" = "" ] ; then
LOOP_LIMIT="25"
fi
# Search pattern for listing font subdirectories
if [ "$FONTPATTERN" = "" ] ; then
FONTPATTERN="fonts/*.font"
fi
# Are there any fonts to install? 1 for yes, 0 for no.
if [ "$ANYFONTLINKS" = "" ] ; then
ANYFONTLINKS=0
fi
# Whether to write out a file with user environment info
if [ "$USER_INFO_WRITEFILE" = "" ] ; then
USER_INFO_WRITEFILE="n"
fi
# File name to write out user info (for USER_INFO_WRITEFILE=y)
# If a relative path is given, then the path is relative to
# the directory into which the software is installed.
if [ "$USER_INFO_FILE" = "" ] ; then
USER_INFO_FILE="custom/user.adobe"
fi
#
# Useful shell function for eliminating automounting cruft
# and symbolic links.
#
fix_path()
{
dir="$1"
if [ ! -d "$dir" ] ; then
return 1
fi
# Undo automounter stuff
ORIGDIR=`(cd "$dir" ; $PWDCMD)`
TESTDIR=`expr $ORIGDIR : '/[^/]*\(.*\)'`
HEAD=`expr $ORIGDIR : '\(/[^/]*\)'/`
if [ -z "$HEAD" -o -z "$TESTDIR" ] ; then
if [ `expr $ORIGDIR : '/[/]*[^/]*$'` -gt 0 ] ; then
FIXED_PATH="$ORIGDIR"
return 0
fi
return 1
fi
if [ ! -d "$ORIGDIR" ] ; then
return 1
fi
if [ ! -z "$TESTDIR" -a ! -d "$TESTDIR" ] ; then
# definitely not automounted
FIXED_PATH="$ORIGDIR"
return 0
fi
if [ `cd $ORIGDIR && $PWDCMD` = `cd $TESTDIR && $PWDCMD` ] ; then
# definitely automounted
FIXED_PATH="$TESTDIR"
return 0
fi
# definitely not automounted
FIXED_PATH="$ORIGDIR"
return 0
}
#
# Prints out a file name indented four spaces
# following by the type of file in parentheses.
#
echo_file_name_and_type()
{
filename="$1"
echo $EB" $filename"$EE
if [ -d "$filename" ] ; then
echo " (Directory)"
elif [ -h "$filename" ] ; then
echo " (Symbolic link)"
elif [ -f "$filename" ] ; then
echo " (File)"
else
echo ""
fi
}
# Process command line parameters.
while [ $# -gt 0 ] ; do
# "xxx=yyy" allows particular values from this script
# to be overwritten from the command line.
# For example, CDDIR=/usr/cdrom
nequal=`expr $1 : '[^=][^=]*=[^=][^=]*'`
if [ $nequal -ge 1 ] ; then
eval "$1"
shift
else
echo "Invalid parameter: $1"
echo "Usage: $0 [<var>=<value>]..."
exit 1
fi
done
# Initialize variables
RHOST=""
DEVNAME=""
DOSYMLINKS=0
DOFONTLINKS=0
CREATED=0
SKIPFONTS=1
umask 022
if [ $ROOT_REQUIRED = 1 ] ; then
# Abort installation if user not superuser
if [ "$WHOAMI" != root ] ; then
echo ""
echo "You must be logged in as root to install"
echo "$DISTRIB_DESC."
echo 'Type "su root" and enter the password to become root.'
eval ${ABORTCMD}
fi
fi
# Stop the script if user hit interrupt
trap 'eval ${ABORTCMD}' 2
# Loop until user says to continue with the installation.
outermost_loop=0
while : ; do
outermost_loop=`expr $outermost_loop + 1`
if [ $outermost_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
ALLOK1=1
$CLEAR
echo ""
echo " Installation Script For"
echo " ${DISTRIB_DESC}"
echo ""
echo " Copyright (c) 1996 Adobe Systems Incorporated"
echo " All Rights Reserved "
echo ""
sleep 2
if [ "$ELECTRONIC_LICENSE" = "y" ] ; then
while : ; do
echo ""
echo "Before proceeding with the installation, you need to read and accept"
echo "the following Electronic End User License Agreement."
echo ""
echo "Press $RETURNKEYNAME to continue."
read A
$CLEAR
nlines=`$NLINES_CMD $CDDIR/$ELECTRONIC_LICENSE_FILE`
firstline=1
while : ; do
if [ $firstline -gt "$nlines" ] ; then
break
fi
lastline=`$EXPR $firstline + 19`
$CLEAR
echo ""
sedcmd="$SED -n -e 's/^/ /g' -e '$firstline,$lastline p' $CDDIR/$ELECTRONIC_LICENSE_FILE"
eval "$sedcmd"
echo ""
echo "Press $RETURNKEYNAME to continue, or type 1 and press $RETURNKEYNAME to re-print"
echo "the Electronic End User License Agreement from the beginning."
read A
if [ "$A" = "1" ] ; then
firstline=1
else
firstline=`$EXPR $lastline + 1`
fi
done
$CLEAR
accepted=0
while : ; do
echo ""
echo "PLEASE INDICATE YOUR ACCEPTANCE OR DECLINE OF THE FOREGOING AGREEMENT"
echo "BY ENTERING THE WORD 'ACCEPT' OR 'DECLINE' AND THEN PRESS $RETURNKEYNAME."
echo ""
echo "If you wish to re-read the Electronic End User License Agreement,"
echo "just press $RETURNKEYNAME."
echo ""
echo $EB"Do you ACCEPT or DECLINE the Electronic End User License Agreement? "$EE
read A
if [ "$A" = ACCEPT -o "$A" = accept ] ; then
accepted=1
$CLEAR
echo ""
echo "You have accepted the Electronic End User License Agreement."
echo "Press $RETURNKEYNAME to continue with the installation process."
read A
$CLEAR
break
elif [ "$A" = DECLINE -o "$A" = decline ] ; then
echo ""
echo "Installation cancelled."
echo ""
eval ${ABORTCMD}
elif [ "$A" != "" ] ; then
echo ""
echo "Invalid response. Valid responses are: ACCEPT,accept,DECLINE,decline."
echo ""
else
break
fi
done
if [ $accepted = 1 ] ; then
break
fi
done
fi
if [ $NPKGS_VISIBLE = 1 ] ; then
A="ALL"
elif [ "$WHICH_PACKAGES" != "prompt" ] ; then
A="$WHICH_PACKAGES"
else
echo ""
echo "The following packages are available for installation:"
echo ""
cat $PKGLISTFILE
echo ""
echo 'Choose from the following options:'
echo ' Press '$RETURNKEYNAME' for All packages.'
echo ' Type a list of package numbers separated by a space (for example: 1 2).'
echo ' Type q to quit.'
echo ''
echo $EB'Which packages do you want to install [Press '$RETURNKEYNAME' for All]? '$EE
read A
ntokens=`echo ${A} | wc -w`
if [ $ntokens -eq 0 ] ; then
A="ALL"
elif [ "$A" = "Q" -o "$A" = "q" -o "$A" = "Quit" -o "$A" = "quit" -o "$A" = "QUIT" ] ; then
eval ${ABORTCMD}
elif [ "$A" = "ALL" -o "$A" = "All" -o "$A" = "all" ] ; then
A="ALL"
else
# Convert commas to spaces
A=`echo "$A" | tr ',' ' '`
# Make sure only valid numbers are present.
for i in $A ; do
package_num=1
found=0
while [ $package_num -le $NPKGS_VISIBLE ] ; do
if [ "$i" -eq "$package_num" ] ; then
found=1
break
fi
package_num=`expr $package_num + 1`
done
if [ $found = 0 ] ; then
echo ""
echo "Invalid entry: $i. Try again."
echo "Press $RETURNKEYNAME to continue"
read UNUSED
ALLOK1=0
break
fi
done
fi
$CLEAR
fi
if [ $ALLOK1 = 1 ] ; then
if [ "$A" = "ALL" ] ; then
A=""
package_num=1
while [ $package_num -le $NPKGS_VISIBLE ] ; do
A="$A $package_num"
package_num=`expr $package_num + 1`
done
fi
# Sort, remove duplicates in list of requested packages to install.
PKGS_TO_INSTALL_REQUESTED=""
package_num=1
while [ $package_num -le $NPKGS_VISIBLE ] ; do
for i in $A ; do
if [ "$i" = "$package_num" ] ; then
PKGS_TO_INSTALL_REQUESTED="$PKGS_TO_INSTALL_REQUESTED $i"
break
fi
done
package_num=`expr $package_num + 1`
done
# Add any packages which are forced by presence of other packages.
REQUESTED_PLUS_FORCED="$PKGS_TO_INSTALL_REQUESTED"
for i in $PKGS_TO_INSTALL_REQUESTED ; do
forced_pkgs=`eval echo '$PKG_'$i'_FORCED_PKGS'`
if [ "$forced_pkgs" != "" ] ; then
REQUESTED_PLUS_FORCED="$REQUESTED_PLUS_FORCED $forced_pkgs"
fi
done
# Sort, remove duplicates in total list of packages (forced packages also) to install.
PKGS_TO_INSTALL_TOTAL=""
package_num=1
while [ $package_num -le $NPKGS ] ; do
for i in $REQUESTED_PLUS_FORCED ; do
if [ "$i" = "$package_num" ] ; then
PKGS_TO_INSTALL_TOTAL="$PKGS_TO_INSTALL_TOTAL $i"
break
fi
done
package_num=`expr $package_num + 1`
done
echo ""
echo ""
for package_num in ${PKGS_TO_INSTALL_REQUESTED} ; do
packagedesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
platformdesc=`eval echo '$PKG_'$package_num'_PLATFORMDESC'`
echo "$platformdesc is required to use $packagedesc"
done
echo "$osname $osversion is currently installed on this machine."
fi
if [ $ALLOK1 = 1 ] ; then
if [ "$INSTALLDEVICE" = "" ] ; then
echo ""
cdtape_loop=0
while : ; do
cdtape_loop=`expr $cdtape_loop + 1`
if [ $cdtape_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo "Do you want to install"
echo "from a CD-ROM drive or a tape drive?"
echo $EB"Type in 'c' for CD-ROM or 't' for TAPE (cdrom/tape) "$EE
read A
if [ "$A" = "CD-ROM" -o "$A" = "C" -o "$A" = "cdrom" -o "$A" = "c" ] ; then
USECD=1
DFTDEVPATH=$DFTCDROMPATH
break
elif [ "$A" = "TAPE" -o "$A" = "T" -o "$A" = "tape" -o "$A" = "t" ] ; then
USECD=0
DFTDEVPATH=$DFTTAPEPATH
break
else
echo ""
echo "You must select CD-ROM or TAPE. Try again."
fi
done
elif [ "$INSTALLDEVICE" = "CDROM" ] ; then
USECD=1
else
USECD=0
fi
# Determine host and path from where release can be extracted
if [ $USECD = 1 ] ; then
DEVPATH=${CDDIR}'/'${CDARCHIVEFILE}
if [ ! -f $DEVPATH ] ; then
echo ""
echo "Cannot find CDROM release in ${CDDIR}."
echo "Re-read installation instructions and start again."
eval ${ABORTCMD}
fi
else
tapelr1_loop=0
while : ; do
tapelr1_loop=`expr $tapelr1_loop + 1`
if [ $tapelr1_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
tapelr2_loop=0
while : ; do
tapelr2_loop=`expr $tapelr2_loop + 1`
if [ $tapelr2_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo $EB"Do you want to install from a tape "$EE
echo "drive connected to your local"
echo $EB"computer or from a remote host (local/remote)? "$EE
read A
if [ "$A" = "LOCAL" -o "$A" = "L" -o "$A" = "local" -o "$A" = "l" -o \
$A = "REMOTE" -o "$A" = "R" -o "$A" = "remote" -o "$A" = "r" ] ; then
if [ "$A" = "REMOTE" -o "$A" = "R" -o "$A" = "remote" -o "$A" = "r" ] ; then
remotehost_loop=0
while : ; do
remotehost_loop=`expr $remotehost_loop + 1`
if [ $remotehost_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo $EB"Enter name of the remote host: "$EE
read RHOST
if [ "$RHOST" = "" ] ; then
echo ""
echo "You must specify a remote host. Try again."
else
break
fi
done
# check if we can connect to remote host
if $RSH -n $RHOST $TEST 1> /dev/null 2>&1 ; then status=0; else status=1; fi
if [ $status != 0 ] ; then
echo ""
echo "You are not authorized to connect to $RHOST"
echo "Check that your machine is listed in /.rhosts file on $RHOST."
echo "For more help, talk to your System Administrator."
ALLOK1=0
fi
else
RHOST=""
fi
if [ $ALLOK1 = 1 ]; then
echo ""
echo $EB"Specify the pathname of the device mounted on "$EE
if [ "$RHOST" = "" ] ; then
echo "this computer."
else
echo "$RHOST."
fi
echo "A tape drive usually has a default mountpoint of "$DFTDEVPATH"."
echo "Please refer to the Installation Guide for additional information."
echo ""
echo $EB'Pathname of device [press '$RETURNKEYNAME' for '$DFTDEVPATH']: '$EE
read A
if [ "$A" = "" ] ; then
DEVPATH=$DFTDEVPATH
else
DEVPATH=$A
fi
fi
break
else
echo ""
echo "You must specify LOCAL or REMOTE. Try again."
fi
done
if [ $ALLOK1 = 1 ] ; then
if [ "$RHOST" = "" ] ; then
if [ ! -r $DEVPATH ] ; then
echo ""
echo "The device $DEVPATH does not exist."
echo "You must select an available device. Try again."
fi
fi
break
fi
done
fi
fi
# INDENDATION START: <
if [ $ALLOK1 = 1 ] ; then
if [ "$ROOTDIR_PROMPT" = "y" ] ; then
rootdir_loop=0
while : ; do
rootdir_loop=`expr $rootdir_loop + 1`
if [ $rootdir_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
ALLOK2=1
echo ""
echo ""
echo "This script installs software relative to a specified installation"
echo "directory <installdir>. If you accept the default value for"
echo "<installdir>, which is $DFTTOPDIR, the following directories"
echo "will be created:"
echo ""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
packagedesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
echo " $DFTTOPDIR/$package_dir"
done
echo ""
echo "Enter the full pathname for the installation directory"
echo 'where you want to install the software'
echo $EB'[press '$RETURNKEYNAME' for '$DFTTOPDIR']: '$EE
read A
if [ "$A" = "" ] ; then
TOPDIR="$DFTTOPDIR"
else
TOPDIR="$A"
fi
# Rmove trailing '/' if any
TOPDIR=`echo "$TOPDIR" | $SED -e 's/\/$//'`
if [ ! -d $TOPDIR ] ; then
if $MKDIR $TOPDIR ; then status=0 ; else status=1; fi
if [ $status != 0 ] ; then
echo ""
echo "Could not create directory $TOPDIR."
eval ${ABORTCMD}
fi
elif [ ! -w $TOPDIR ] ; then
echo ""
echo "You do not have write permissions for the directory"
echo "$TOPDIR. Please choose another directory."
ALLOK2=0
fi
if [ $ALLOK2 = 1 ] ; then
break
fi
done
else
TOPDIR="$DFTTOPDIR"
if [ ! -d $TOPDIR ] ; then
if $MKDIR $TOPDIR ; then status=0 ; else status=1; fi
if [ $status != 0 ] ; then
echo ""
echo "Could not create directory $TOPDIR."
eval ${ABORTCMD}
fi
elif [ ! -w $TOPDIR ] ; then
echo ""
echo "You do not have write permissions for the directory"
echo "$TOPDIR."
eval ${ABORTCMD}
fi
fi
fi
if [ $ALLOK1 = 1 ] ; then
ANYSECURED=0
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
lmfeature=`eval echo '$PKG_'$package_num'_LMFEATURE'`
ntokens=`echo $lmfeature | wc -w`
if [ $ntokens -gt 0 ] ; then
ANYSECURED=1
break
fi
done
if [ $ANYSECURED = 1 ] ; then
abspath=`expr "$DFTSECURITYDIR" : '^/'`
if [ $abspath = 1 ] ; then
SECURITYDIR="$DFTSECURITYDIR"
else
SECURITYDIR=${TOPDIR}'/'"$DFTSECURITYDIR"
fi
if [ "$LICENSE_PROMPT" = "y" ] ; then
licensefile_loop=0
while : ; do
licensefile_loop=`expr $licensefile_loop + 1`
if [ $licensefile_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo "Enter name of license data file."
echo $EB'[press '$RETURNKEYNAME' for '$SECURITYDIR'/'$DFTSECURITYFILE']: '$EE
read A
if [ "$A" != "" ] ; then
SECURITYFILE="$A"
else
SECURITYFILE="$SECURITYDIR/$DFTSECURITYFILE"
fi
dir=`expr "$SECURITYFILE" : '\(.*\)/'`
if [ "$dir" = "" -o "$dir" = "." ] ; then
echo ""
echo ""
echo "You must enter a fully qualified name beginning with '/'."
continue
else
break
fi
done
else
SECURITYFILE="$SECURITYDIR/$DFTSECURITYFILE"
fi
fi
fi
if [ $ALLOK1 = 1 ] ; then
ANYSYMLINKS=0
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
ntokens=`echo $binlinks | wc -w`
if [ $ntokens -gt 0 ] ; then
ANYSYMLINKS=1
fi
if [ $ANYSYMLINKS -eq 1 ] ; then
break
fi
done
DOSYMLINKS=$ANYSYMLINKS
DOFONTLINKS=$ANYFONTLINKS
if [ $ANYSYMLINKS -eq 1 -o $ANYFONTLINKS -eq 1 ] ; then
if [ "$AUTOSYMLINK" = "makescript" ] ; then
dir=`expr "$SYMLINKSCRIPT" : '\(.*\)/'`
if [ ! -w "$dir" ] ; then
echo ""
echo ""
echo "You do not have permission to write to directory $dir."
echo "Change permissions and then rerun $0."
eval ${ABORTCMD}
fi
if [ -s "$SYMLINKSCRIPT" -o -f "$SYMLINKSCRIPT" ] ; then
if [ ! -w "$SYMLINKSCRIPT" ] ; then
echo ""
echo ""
echo "You do not have permission to write to file $SYMLINKSCRIPT."
echo "Change permissions and then rerun $0."
eval ${ABORTCMD}
fi
${RM} "$SYMLINKSCRIPT"
fi
DOSYMLINKS=0
DOFONTLINKS=0
elif [ "$AUTOSYMLINK" = "prompt" ] ; then
dosymlinks_loop=0
while : ; do
dosymlinks_loop=`expr $dosymlinks_loop + 1`
if [ $dosymlinks_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo "$SYMLINK_PROMPT_1_TEXT"
echo $EB"[YES/NO: Press $RETURNKEYNAME for YES]: "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" -o "$A" = "" ] ; then
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
DOSYMLINKS=0
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
dosymlinks_loop=0
if [ $ANYFONTLINKS -eq 1 ] ; then
while : ; do
dosymlinks_loop=`expr $dosymlinks_loop + 1`
if [ $dosymlinks_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo "$FONTLINK_PROMPT_1_TEXT"
echo $EB"[YES/NO: Press $RETURNKEYNAME for YES]: "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" -o "$A" = "" ] ; then
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
DOFONTLINKS=0
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
fi
fi
if [ $DOSYMLINKS -eq 1 ] ; then
abspath=`expr $DFTSYMLINKDIR : '^/'`
if [ $abspath = 1 ] ; then
AUTOSYMLINKDIR="$DFTSYMLINKDIR"
else
AUTOSYMLINKDIR=${TOPDIR}'/'"$DFTSYMLINKDIR"
fi
if [ "$SYMLINKDIR_PROMPT" = "y" ] ; then
symlinkdir_loop=0
while : ; do
symlinkdir_loop=`expr $symlinkdir_loop + 1`
if [ $symlinkdir_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo "$SYMLINK_PROMPT_2_TEXT"
echo $EB'[press '$RETURNKEYNAME' for '$AUTOSYMLINKDIR']: '$EE
read A
if [ "$A" != "" ] ; then
AUTOSYMLINKDIR="$A"
fi
if [ ! -d "$AUTOSYMLINKDIR" ] ; then
if $MKDIR $AUTOSYMLINKDIR ; then error=0; else error=1; fi
if [ $error != 0 ] ; then
echo "cannot create directory $AUTOSYMLINKDIR"
eval ${ABORTCMD}
fi
chmod u+w $AUTOSYMLINKDIR
fi
if [ ! -w $AUTOSYMLINKDIR ] ; then
echo ""
echo ""
echo "You do not have permission to write to $AUTOSYMLINKDIR."
ALLOK1=0
else
break
fi
done
else
if [ ! -d "$AUTOSYMLINKDIR" ] ; then
if $MKDIR $AUTOSYMLINKDIR ; then error=0; else error=1; fi
if [ $error != 0 ] ; then
echo "cannot create directory $AUTOSYMLINKDIR"
eval ${ABORTCMD}
fi
chmod u+w $AUTOSYMLINKDIR
fi
if [ ! -w $AUTOSYMLINKDIR ] ; then
echo ""
echo ""
echo "You do not have permission to write to $AUTOSYMLINKDIR."
eval ${ABORTCMD}
fi
fi
fi
NEWFONTHOME=""
if [ $DOFONTLINKS -eq 1 ] ; then
while : ; do
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
FONTHOME=`eval echo '$PKG_'$package_num'_FONTDIR'`
AUTOFONTLINKDIR="$FONTHOME"
fonthome="$AUTOFONTLINKDIR"
if [ "$SYMLINKDIR_PROMPT" = "y" ] ; then
symlinkdir_loop=0
while : ; do
symlinkdir_loop=`expr $symlinkdir_loop + 1`
if [ $symlinkdir_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo "Enter the full path of the directory in which you want"
echo "applications to look for fonts, or press $RETURNKEYNAME to accept"
echo "the default directory. The directory will be created if it does"
echo "not exist."
echo $EB'[press '$RETURNKEYNAME' for '$AUTOFONTLINKDIR']: '$EE
read A
if [ "$A" != "" ] ; then
AUTOFONTLINKDIR="$A"
fi
if [ ! -d "$AUTOFONTLINKDIR" ] ; then
if $MKDIR $AUTOFONTLINKDIR ; then error=0; else error=1; fi
if [ $error != 0 ] ; then
echo "cannot create directory $AUTOFONTLINKDIR"
eval ${ABORTCMD}
fi
chmod u+w $AUTOFONTLINKDIR
chmod a+rx $AUTOFONTLINKDIR
CREATED=1
fi
if [ ! -w $AUTOFONTLINKDIR ] ; then
echo ""
echo ""
echo "You do not have permission to write to $AUTOFONTLINKDIR."
ALLOK1=0
else
break
fi
done
else
if [ ! -d "$AUTOFONTLINKDIR" ] ; then
if $MKDIR $AUTOFONTLINKDIR ; then error=0; else error=1; fi
if [ $error != 0 ] ; then
echo "cannot create directory $AUTOFONTLINKDIR"
eval ${ABORTCMD}
fi
chmod u+w $AUTOFONTLINKDIR
chmod a+rx $AUTOFONTLINKDIR
CREATED=1
fi
if [ ! -w $AUTOFONTLINKDIR ] ; then
echo ""
echo ""
echo "You do not have permission to write to $AUTOFONTLINKDIR."
eval ${ABORTCMD}
fi
fi
# Get last line of df statement.
# Prepend X because if the mount point is too long,
# the df command will result in two lines, with the
# second line having blanks for the first field.
lastdfline="X"`$DFCMD $AUTOFONTLINKDIR | $LASTLINECMD`
# Determine if there is enough disk space for this install.
case $KBYTES_AVAIL_FIELD in
1)
disk_kbytes=`echo $lastdfline | awk '{ print $1 }'`
;;
2)
disk_kbytes=`echo $lastdfline | awk '{ print $2 }'`
;;
3)
disk_kbytes=`echo $lastdfline | awk '{ print $3 }'`
;;
4)
disk_kbytes=`echo $lastdfline | awk '{ print $4 }'`
;;
5)
disk_kbytes=`echo $lastdfline | awk '{ print $5 }'`
;;
*)
echo ""
echo "Internal error. Unable to determine disk space."
eval ${ABORTCMD}
;;
esac
font_kbytes=`eval echo '$PKG_'$package_num'_KBYTES'`
if [ $font_kbytes -ge $disk_kbytes ] ; then
echo ""
echo ""
echo "There is not enough disk space for the installation."
echo "The installation you requested requires $font_kbytes kilobytes of disk space"
echo "and you currently have only $disk_kbytes kilobytes of available disk space"
echo "in directory $AUTOFONTLINKDIR."
if [ "$NPKGS_VISIBLE" -gt 1 ] ; then
echo "Either install fewer packages or choose a different location to install"
echo "the packages."
else
echo "Choose a different location to install the packages."
fi
echo ""
echo ""
echo "Press $RETURNKEYNAME to continue"
read A
# Make sure that SYMLINKDIR_PROMPT is "y" so that the next
# time through the user has an opportunity to pick a
# non-default directory.
SYMLINKDIR_PROMPT="y"
ALLOK1=0
fi
NEWFONTHOME="$NEWFONTHOME $AUTOFONTLINKDIR"
done
if [ $ALLOK1 -eq 1 ] ; then
break
else
ALLOK1=1
NEWFONTHOME=""
fi
done # while
fi
fi
fi
# See if we will override any existing fonts with auto symbolic links.
FONTLINKANYOLD=0
tfonthome="$NEWFONTHOME"
if [ $ALLOK1 -eq 1 -a $DOFONTLINKS -eq 1 ] ; then
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
fonthome=`eval echo '$PKG_'$package_num'_FONTDIR'`
newfonthome=`expr "$tfonthome" : '[ ]*\([^ ]*\)[ ]*'`
tfonthome=`expr "$tfonthome" : '[ ]*[^ ]*\(.*\)'`
if [ ! -z "$newfonthome" -a "$fonthome" != "$newfonthome" ] ; then
fonthome="$newfonthome"
fi
if [ ! -z "$fonthome" ] ; then
if [ -d $fonthome -o -h $fonthome ]; then
FONTLINKANYOLD=1
break
fi
fi
done
fi
if [ $FONTLINKANYOLD -eq 1 ] ; then
if [ $CREATED -ne 1 ] ; then
while : ; do
echo ""
echo ""
echo "*** Warning ***"
echo "Some fonts are already installed in $fonthome. This script"
echo "checks the name of each font to be installed against those already"
echo "installed in $fonthome. You may choose to skip the"
echo "installation of fonts whose names match, or you may replace matching"
echo "fonts. Fonts with no matching name will be installed regardless."
echo ""
echo $EB"Do you want to replace fonts with matching names (YES/NO)? "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" -o "$A" = "" ] ; then
SKIPFONTS=0
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
SKIPFONTS=1
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
fi
fi
# INDENDATION END
if [ $ALLOK1 = 1 ] ; then
PSRES_PATH=""
if [ "$PSRES_PROMPT" = "y" ] ; then
echo ""
echo ""
# FLAGTAG Don't we have a variable we can use for the application name?
echo "Enter a list of directories, separated by colons, where the application"
echo "you are installing should look for fonts. The following recommended"
echo "directories are included automatically and need not be specified."
echo ""
echo " $PSRES_DEFAULT"
echo ""
echo "Enter a list of additional font directories"
echo $EB"[Press $RETURNKEYNAME to accept the recommended directories]: "$EE
read PSRES_PATH
fi
if [ "$PSRES_PATH" = "" ] ; then
PSRES_PATH="$PSRES_DEFAULT"
elif [ "$PSRES_DEFAULT" != "" ] ; then
PSRES_PATH="$PSRES_PATH:$PSRES_DEFAULT"
fi
fi
ANY_XKEYSYMDB=0
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
xkeysymdb=`eval echo '$PKG_'$package_num'_XKEYSYMDB'`
if [ "$xkeysymdb" = 1 ] ; then
ANY_XKEYSYMDB=1
break
fi
done
# Only ask next set of questions if user answered YES above.
if [ $ALLOK1 = 1 ] ; then
# See if any files and/or directories already exist with target names.
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
eval "PKG_"$package_num"_OLD_VERSION_CHOICE=newinstallation"
packagedesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
paction=`eval echo '$PKG_'$package_num'_OLD_VERSION_ACTION'`
package_dir=$pabbr"_"$pver
autosymlink=`eval echo '$PKG_'$package_num'_AUTOSYMLINK'`
if [ "$autosymlink" = "" ] ; then
autosymlink="$DOSYMLINKS"
fi
fulldir=$TOPDIR/$package_dir
if [ -d $fulldir -o -f $fulldir -o -h $fulldir ] ; then
package_exists=1
else
package_exists=0
fi
link_exists=0
ntokens=`echo $binlinks | wc -w`
if [ "$autosymlink" = 1 -a $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
if [ -f $AUTOSYMLINKDIR/$name -o -d $AUTOSYMLINKDIR/$name -o -h $AUTOSYMLINKDIR/$name ]; then
link_exists=1
break
fi
done
fi
if [ "$package_exists" = 1 -o "$link_exists" = 1 ] ; then
case "$paction" in
"quiet:leavealone"|"quiet:overwrite")
break
;;
"prompt:leavealone/overwrite")
leavealonedir_loop=0
while : ; do
leavealonedir_loop=`expr $leavealonedir_loop + 1`
if [ $leavealonedir_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo "*** WARNING ***"
echo "Components of $packagedesc are already installed on"
echo "your system in the following locations. You can either"
echo "leave the existing installation unchanged or re-install"
echo "$packagedesc, thereby replacing all of the"
echo "files/directories listed below. If you choose to re-install,"
echo "be sure to copy any personal files or customizations within"
echo "these files/directories to another location before continuing"
echo "with this procedure:"
echo ""
if [ "$package_exists" = 1 ] ; then
echo_file_name_and_type "$fulldir"
fi
if [ "$link_exists" = 1 ] ; then
ntokens=`echo $binlinks | wc -w`
if [ $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
if [ -f $AUTOSYMLINKDIR/$name -o -d $AUTOSYMLINKDIR/$name -o -h $AUTOSYMLINKDIR/$name ]; then
echo_file_name_and_type "$AUTOSYMLINKDIR/$name"
fi
done
fi
fi
echo ""
echo "Do you wish to install $packagedesc, replacing the"
echo $EB"above components (YES/NO) [press $RETURNKEYNAME for NO]: "$EE
read A
echo ""
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" ] ; then
eval "PKG_"$package_num"_OLD_VERSION_CHOICE=overwrite"
break
elif [ "$A" = "" -o "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
eval "PKG_"$package_num"_OLD_VERSION_CHOICE=leavealone"
break
else
echo ""
echo "You must specify YES or NO or simply press $RETURNKEYNAME for NO. Try again."
fi
done
;;
*|"prompt:oktodelete")
overwritedir_loop=0
while : ; do
overwritedir_loop=`expr $overwritedir_loop + 1`
if [ $overwritedir_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo ""
echo "*** WARNING ***"
echo "The following files and/or directories already exist for"
echo "$packagedesc. If you continue with this installation"
echo "you will overwrite them. Be sure to copy any personal"
echo "files to another location before continuing the installation."
echo ""
echo " $fulldir"
ntokens=`echo $binlinks | wc -w`
if [ $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
if [ -f $AUTOSYMLINKDIR/$name -o -d $AUTOSYMLINKDIR/$name -o -h $AUTOSYMLINKDIR/$name ]; then
echo " $AUTOSYMLINKDIR/$name"
fi
done
fi
echo ""
echo $EB"OK to proceed (YES/NO)? "$EE
read A
echo ""
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" ] ; then
eval "PKG_"$package_num"_OLD_VERSION_CHOICE=overwrite"
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
echo ""
echo "Please specify a different location for installing the packages"
if [ "$WHICH_PACKAGES" = "prompt" ] ; then
echo "or a different set of packages to install"
fi
echo "Press $RETURNKEYNAME to restart the script or use your interrupt key to exit the script"
read A
ALLOK1=0
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
;;
esac
fi
if [ "$ALLOK1" != 1 ] ; then
break
fi
done
# Adjust PKGS_TO_INSTALL_REQUESTED and PKGS_TO_INSTALL_TOTAL to reflect
# decisions not to install over existing packages.
NEW_PKGS_REQUESTED=""
for package_num in ${PKGS_TO_INSTALL_REQUESTED} ; do
pchoice=`eval echo '$PKG_'$package_num'_OLD_VERSION_CHOICE'`
if [ "$pchoice" != "leavealone" ] ; then
NEW_PKGS_REQUESTED="$NEW_PKGS_REQUESTED $package_num"
fi
done
NEW_PKGS_TOTAL=""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pchoice=`eval echo '$PKG_'$package_num'_OLD_VERSION_CHOICE'`
if [ "$pchoice" != "leavealone" ] ; then
NEW_PKGS_TOTAL="$NEW_PKGS_TOTAL $package_num"
fi
done
PKGS_TO_INSTALL_REQUESTED="$NEW_PKGS_REQUESTED"
PKGS_TO_INSTALL_TOTAL="$NEW_PKGS_TOTAL"
if [ "$PKGS_TO_INSTALL_TOTAL" = "" ] ; then
echo ""
echo "No packages require installation."
eval ${ABORTCMD}
fi
if [ $ALLOK1 = 1 ] ; then
# Get last line of df statement.
# Prepend X because if the mount point is too long,
# the df command will result in two lines, with the
# second line having blanks for the first field.
lastdfline="X"`$DFCMD ${TOPDIR} | $LASTLINECMD`
# Determine if there is enough disk space for this install.
case $KBYTES_AVAIL_FIELD in
1)
disk_kbytes=`echo $lastdfline | awk '{ print $1 }'`
;;
2)
disk_kbytes=`echo $lastdfline | awk '{ print $2 }'`
;;
3)
disk_kbytes=`echo $lastdfline | awk '{ print $3 }'`
;;
4)
disk_kbytes=`echo $lastdfline | awk '{ print $4 }'`
;;
5)
disk_kbytes=`echo $lastdfline | awk '{ print $5 }'`
;;
*)
echo ""
echo "Internal error. Unable to determine disk space."
eval ${ABORTCMD}
;;
esac
total_kbytes=0
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
fulldir=$TOPDIR/$package_dir
pchoice=`eval echo '$PKG_'$package_num'_OLD_VERSION_CHOICE'`
if [ "$pchoice" = "newinstallation" ] ; then
kbytes=`eval echo '$PKG_'$package_num'_KBYTES'`
total_kbytes=`expr $total_kbytes + $kbytes`
elif [ "$pchoice" = "overwrite" ] ; then
oldkbytes=`$DUCMD $fulldir | $AWK '{print $1;}'`
# IRIX 5.3 du command returns nothing if the $fulldir does not exist
if [ "X$oldkbytes" = "X" ] ; then
oldkbytes=0
fi
# HP-UX has no option for printing kbytes, only blocks.
# So, scale down by .5 on that platform.
oldkbytes=`expr $oldkbytes \* $DUFACTOR`
newkbytes=`eval echo '$PKG_'$package_num'_KBYTES'`
total_kbytes=`expr $total_kbytes + $newkbytes - $oldkbytes`
fi
done
if [ $total_kbytes -ge $disk_kbytes ] ; then
echo ""
echo ""
echo "There is not enough disk space for the installation."
echo "The installation you requested requires $total_kbytes kilobytes of disk space"
echo "and you currently have only $disk_kbytes kilobytes of available disk space"
echo "in directory ${TOPDIR}."
if [ "$NPKGS_VISIBLE" -gt 1 ] ; then
echo "Either install fewer packages or choose a different location to install"
echo "the packages."
else
echo "Choose a different location to install the packages."
fi
echo ""
echo ""
echo "Press $RETURNKEYNAME to continue"
read A
# Make sure that ROOTDIR_PROMPT is "y" so that the next
# time through the user has an opportunity to pick a
# non-default <root directory>.
ROOTDIR_PROMPT="y"
ALLOK1=0
fi
fi
fi
if [ $ALLOK1 = 1 ] ; then
$CLEAR
echo ""
echo "Installation summary:"
echo ""
okproceed_loop=0
while : ; do
okproceed_loop=`expr $okproceed_loop + 1`
if [ $okproceed_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
# Check to see if anything will be deleted.
anydelete=0
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
pchoice=`eval echo '$PKG_'$package_num'_OLD_VERSION_CHOICE'`
package_dir=$pabbr"_"$pver
autosymlink=`eval echo '$PKG_'$package_num'_AUTOSYMLINK'`
if [ "$autosymlink" = "" ] ; then
autosymlink="$DOSYMLINKS"
fi
fulldir=$TOPDIR/$package_dir
if [ -d $fulldir -o -f $fulldir -o -h $fulldir ] ; then
package_exists=1
else
package_exists=0
fi
link_exists=0
ntokens=`echo $binlinks | wc -w`
if [ "$autosymlink" = 1 -a $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
if [ -f $AUTOSYMLINKDIR/$name -o -d $AUTOSYMLINKDIR/$name -o -h $AUTOSYMLINKDIR/$name ]; then
link_exists=1
break
fi
done
fi
if [ "$package_exists" = 1 -o "$link_exists" = 1 ] ; then
if [ "$pchoice" = "overwrite" ] ; then
anydelete=1
break
fi
fi
done
if [ "$anydelete" = 1 ] ; then
echo ""
echo "The following files and/or directories will be overwritten."
echo ""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
pchoice=`eval echo '$PKG_'$package_num'_OLD_VERSION_CHOICE'`
package_dir=$pabbr"_"$pver
autosymlink=`eval echo '$PKG_'$package_num'_AUTOSYMLINK'`
if [ "$autosymlink" = "" ] ; then
autosymlink="$DOSYMLINKS"
fi
fulldir=$TOPDIR/$package_dir
if [ "$pchoice" = "overwrite" ] ; then
if [ -d $fulldir -o -f $fulldir -o -h $fulldir ] ; then
echo_file_name_and_type "$fulldir"
fi
ntokens=`echo $binlinks | wc -w`
if [ "$autosymlink" = 1 -a $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
if [ -f $AUTOSYMLINKDIR/$name -o -d $AUTOSYMLINKDIR/$name -o -h $AUTOSYMLINKDIR/$name ]; then
echo_file_name_and_type "$AUTOSYMLINKDIR/$name"
fi
done
fi
fi
done
fi
echo ""
echo "The following packages will be installed."
echo ""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
fulldir=$TOPDIR/$package_dir
kbytes=`eval echo '$PKG_'$package_num'_KBYTES'`
echo " "$fulldir '('$kbytes'K)'
done
if [ $DOSYMLINKS = 1 ] ; then
echo ""
echo "The following symbolic links will be created:"
echo ""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
packagedesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
fulldir=$TOPDIR/$package_dir
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
ntokens=`echo $binlinks | wc -w`
if [ $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
echo " ${LN} $fulldir/$bin $AUTOSYMLINKDIR/$name"
done
fi
done
fi
if [ $DOFONTLINKS = 1 ] ; then
echo ""
echo "The following commands will be executed for fonts:"
echo ""
tfonthome="$NEWFONTHOME"
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
packagedesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
fulldir=$TOPDIR/$package_dir
uprfile=`eval echo '$PKG_'$package_num'_FONTUPR'`
fonthome=`eval echo '$PKG_'$package_num'_FONTDIR'`
newfonthome=`expr "$tfonthome" : '[ ]*\([^ ]*\)[ ]*'`
tfonthome=`expr "$tfonthome" : '[ ]*[^ ]*\(.*\)'`
if [ ! -z "$newfonthome" -a "$fonthome" != "$newfonthome" ] ; then
fonthome="$newfonthome"
fi
echo " ${DIRCP} $fulldir/$FONTPATTERN $fonthome"
if [ "$AUTOSYMLINK" != "makescript" ] ; then
echo " ${DIRRM} $fulldir/$FONTPATTERN"
fi
name=`expr //$uprfile : '.*/\(.*\)'`
if [ -z "$name" ] ; then
name="$uprfile"
fi
dir=`expr "$fonthome" : '\(.*\)/'`
echo " ${CP} $fulldir/$uprfile $dir/$name"
# X font info files
fdir=`expr "$FONTPATTERN" : '\(.*\)/'`
if [ -f $fulldir/$fdir/fonts.dir ] ; then
echo " ${CP} $fulldir/$fdir/fonts.dir $fonthome"
fi
if [ -f $fulldir/$fdir/fonts.alias ] ; then
echo " ${CP} $fulldir/$fdir/fonts.alias $fonthome"
fi
done
fi
echo ""
echo ""
echo $EB'Do you want to proceed with the installation (YES/NO)? '$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" ] ; then
echo ""
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
eval ${ABORTCMD}
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
fi
# Can we proceed with the installation?
if [ $ALLOK1 = 1 ] ; then
break
fi
done
$CLEAR
echo ""
echo ""
echo "Beginning installation..."
echo ""
echo "This may take some time, depending on the number of items"
echo "you have selected and the performance of your chosen device."
echo ""
# Remove any files and/or directories that will be overwritten.
if [ "$anydelete" = 1 ] ; then
echo ""
echo "Removing the following files and/or directories:"
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
pchoice=`eval echo '$PKG_'$package_num'_OLD_VERSION_CHOICE'`
package_dir=$pabbr"_"$pver
fulldir=$TOPDIR/$package_dir
autosymlink=`eval echo '$PKG_'$package_num'_AUTOSYMLINK'`
if [ "$autosymlink" = "" ] ; then
autosymlink="$DOSYMLINKS"
fi
if [ "$pchoice" = "overwrite" ] ; then
if [ -d $fulldir -o -f $fulldir -o -h $fulldir ] ; then
echo $EB" "$fulldir"..."$EE
${RM} -r $fulldir
echo done
fi
if [ "$autosymlink" = 1 ] ; then
ntokens=`echo $binlinks | wc -w`
if [ $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
if [ -f $AUTOSYMLINKDIR/$name -o -d $AUTOSYMLINKDIR/$name -o -h $AUTOSYMLINKDIR/$name ] ; then
echo $EB" $AUTOSYMLINKDIR/$name..."$EE
${RM} -r $AUTOSYMLINKDIR/$name
echo done
fi
done
fi
fi
fi
done
echo ""
fi
# First, with package_num_tar==0, loop through all packages to see which
# ones use the default tar file ($DEVPATH). Build a list and extract the files.
# Then, for each package with own special tar file, loop through all
# packages to see what other packages use that special tar file.
# The logic causes each package to be extracted exactly once.
# For each different tar file, build a list of packages to extract.
# Then, extract the desired packages.
for package_num_tar in 0 ${PKGS_TO_INSTALL_TOTAL} ; do
INSTALL_METHOD=`eval echo '$PKG_'$package_num_tar'_INSTALL_METHOD'`
if [ "$INSTALL_METHOD" = "" -o "$INSTALL_METHOD" = "tarfile" ] ; then
if [ "$package_num_tar" -eq 0 ] ; then
TARFILE="$DEVPATH"
if [ "$TARFILE" = "" ] ; then
continue
fi
else
TARFILE_RELATIVE=`eval echo '$PKG_'$package_num_tar'_TARFILE'`
if [ "$TARFILE_RELATIVE" = "" ] ; then
continue
fi
TARFILE="$CDDIR/$TARFILE_RELATIVE"
fi
# Build the list of packages to extract from this tar file.
FILELIST=""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
pextracted=`eval echo '$PKG_'$package_num'_EXTRACTED'`
if [ "$pextracted" = 1 ] ; then
continue
fi
installmethod=`eval echo '$PKG_'$package_num'_INSTALL_METHOD'`
if [ "$installmethod" = "" -o "$installmethod" = "tarfile" ] ; then
ptarfile=`eval echo '$PKG_'$package_num'_TARFILE'`
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
if [ "$ptarfile" = "" -a "$package_num_tar" -eq 0 ] ; then
FILELIST=${FILELIST}\'$package_dir\'' '
eval "PKG_"$package_num"_EXTRACTED=1"
elif [ "$ptarfile" = "$TARFILE_RELATIVE" ] ; then
FILELIST=${FILELIST}\'$package_dir\'' '
eval "PKG_"$package_num"_EXTRACTED=1"
fi
fi
done
# Extract the desired packages.
if [ "$FILELIST" != "" ] ; then
if [ "$RHOST" = "" ] ; then
INSTALLCOMMAND="$TAR $TAR_OPTS_X $TARFILE ${FILELIST}"
else
INSTALLCOMMAND="rsh -n $RHOST dd if=$TARFILE | $TAR $TAR_OPTS_X ${FILELIST}"
fi
olddir=`pwd`
cd $TOPDIR
eval "${INSTALLCOMMAND}"
cd $olddir
fi
elif [ "$INSTALL_METHOD" = "tar-to-tar" -o "$INSTALL_METHOD" = "cp" ] ; then
FILES=`eval echo '$PKG_'$package_num_tar'_FILES'`
FILES_DIRECTORY=`eval echo '$PKG_'$package_num_tar'_FILES_DIRECTORY'`
# Extract the desired packages.
if [ "$FILES" != "" ] ; then
if [ "$RHOST" = "" ] ; then
if [ "$INSTALL_METHOD" = "tar-to-tar" ] ; then
INSTALLCOMMAND='('"cd $CDDIR/$FILES_DIRECTORY"';'"$TAR $TAR_OPTS_C - ${FILES}"')|('"cd $TOPDIR"';'"$TAR $TAR_OPTS_X -"')'
elif [ "$INSTALL_METHOD" = "cp" ] ; then
INSTALLCOMMAND='('"cd $CDDIR/$FILES_DIRECTORY"';'"$DIRCP ${FILES} $TOPDIR"')'
else
# Shouldn't happen.
INSTALLCOMMAND="Error in install script"
fi
else
echo ""
echo "Cannot extract package from remote host."
eval ${ABORTCMD}
fi
if [ "$INSTALL_METHOD" = "cp" ] ; then
echo $EB"Copy ${FILES} to $TOPDIR..."$EE
fi
eval "${INSTALLCOMMAND}"
if [ "$INSTALL_METHOD" = "cp" ] ; then
echo "done"
fi
fi
else
echo ""
echo 'Invalid value for PKG_'$package_num_tar'_INSTALL_METHOD.'
eval ${ABORTCMD}
fi
done
# Process packages
ALREADY_XKEYSYMDB=0
LMFEATURELIST=""
MAKESCRIPT=0
ONESCRIPT=0
for package_num in 0 ${PKGS_TO_INSTALL_TOTAL} ; do
PERPKGFONTSIZE=""
packagedesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
pabbr=`eval echo '$PKG_'$package_num'_PKGABBR'`
pver=`eval echo '$PKG_'$package_num'_PKGVERS'`
package_dir=$pabbr"_"$pver
fulldir=$TOPDIR/$package_dir
autosymlink=`eval echo '$PKG_'$package_num'_AUTOSYMLINK'`
if [ "$autosymlink" = "" ] ; then
autosymlink="$DOSYMLINKS"
fi
# Install makelinks scripts for all installed packages in /tmp if "makescript" and
# any symlinks in this installation.
# Install makelinks scripts for each package in installscripts/ if
# package_num>0 and any symlinks.
lnks=`expr $ANYSYMLINKS + $ANYFONTLINKS`
if [ package_num -eq 0 -a "$AUTOSYMLINK" = "makescript" -a $lnks -ge 1 -o $package_num -ge 1 -a "$autosymlink" != "0" ] ; then
# Put a script in $SYMLINKSCRIPT that creates symbolic
# links for all installed packages. Also, put a
# script in the installscripts directory for each package which
# can be run to create links for that package.
# The "0" option below covers the $SYMLINKSCRIPT case.
binlist=""
uprfiles=""
fonthome=""
tfonthome="$NEWFONTHOME"
if [ "$package_num" = 0 ] ; then
scriptfile="$SYMLINKSCRIPT"
# Construct a list of absolute paths to launch scripts.
for package_num0 in ${PKGS_TO_INSTALL_TOTAL} ; do
pabbr0=`eval echo '$PKG_'$package_num0'_PKGABBR'`
pver0=`eval echo '$PKG_'$package_num0'_PKGVERS'`
package_dir0=$pabbr0"_"$pver0
fulldir0=$TOPDIR/$package_dir0
binlinks0=`eval echo '$PKG_'$package_num0'_BINLINKS'`
ntokens0=`echo $binlinks0 | wc -w`
if [ $ntokens0 -gt 0 ] ; then
for bin0 in $binlinks0 ; do
binlist="$binlist $fulldir0/$bin0"
done
fi
uprfile0=`eval echo '$PKG_'$package_num0'_FONTUPR'`
ftokens=`echo $uprfile0 | wc -w`
if [ $ftokens -gt 0 ] ; then
for upr0 in $uprfile0 ; do
uprfiles="$uprfiles $fulldir0/$upr0"
done
fi
fonthome0=`eval echo '$PKG_'$package_num0'_FONTDIR'`
newfonthome=`expr "$tfonthome" : '[ ]*\([^ ]*\)[ ]*'`
tfonthome=`expr "$tfonthome" : '[ ]*[^ ]*\(.*\)'`
if [ ! -z "$newfonthome" -a "$fonthome0" != "$newfonthome" ] ; then
fonthome0="$newfonthome"
fi
fonthome="$fonthome $fonthome0"
font_kbytes=`eval echo '$PKG_'$package_num0'_KBYTES'`
PERPKGFONTSIZE="$PERPKGFONTSIZE $font_kbytes"
done
MAKESCRIPT=1
ONESCRIPT=1
fulldir=$fulldir0
else
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
ntokens=`echo $binlinks | wc -w`
MAKESCRIPT=0
if [ $ntokens -gt 0 ] ; then
scriptdir=$fulldir/installscripts
if [ ! -d "$scriptdir" ] ; then
$MKDIR $scriptdir
chmod a+rx $scriptdir
fi
scriptfile="$scriptdir"/makelinks
for bin in $binlinks ; do
binlist="$binlist $bin"
done
MAKESCRIPT=1
fi
fonthome=`eval echo '$PKG_'$package_num0'_FONTDIR'`
newfonthome=`expr "$tfonthome" : '[ ]*\([^ ]*\)[ ]*'`
tfonthome=`expr "$tfonthome" : '[ ]*[^ ]*\(.*\)'`
if [ ! -z "$newfonthome" -a "$fonthome" != "$newfonthome" ] ; then
fonthome="$newfonthome"
fi
scriptdir=$fulldir/installscripts
if [ ! -d "$scriptdir" ] ; then
$MKDIR $scriptdir
chmod a+rx $scriptdir
fi
scriptfile="$scriptdir"/makelinks
uprfile=`eval echo '$PKG_'$package_num'_FONTUPR'`
ftokens=`echo $uprfile | wc -w`
if [ $ftokens -gt 0 ] ; then
for upr in $uprfile ; do
uprfiles="$uprfiles $upr"
done
MAKESCRIPT=1
fi
font_kbytes=`eval echo '$PKG_'$package_num'_KBYTES'`
PERPKGFONTSIZE="$font_kbytes"
fi
if [ "$MAKESCRIPT" = 1 ] ; then
echo '#!/bin/sh
# Shell script for automatically installing launch scripts and
# other small programs into an alternate launch script directory.' > "$scriptfile"
echo 'binlinks="'"$binlist"'"' >> "$scriptfile"
if [ $ANYFONTLINKS -eq 1 ] ; then
echo 'uprfiles="'"$uprfiles"'"' >> $scriptfile
echo 'fonthome="'"$fonthome"'"' >> $scriptfile
echo 'fontpattern="'"$FONTPATTERN"'"' >> $scriptfile
echo 'PSRES_PATH="'"$PSRES_PATH"'"' >> $scriptfile
echo 'USER_INFO_FILE="'"$USER_INFO_FILE"'"' >> $scriptfile
echo 'DOFONTLINKS=1' >> $scriptfile
echo 'DFCMD="'"$DFCMD"'"' >> $scriptfile
echo 'PERPKGFONTSIZE="'"$PERPKGFONTSIZE"'"' >> $scriptfile
echo 'KBYTES_AVAIL_FIELD="'"$KBYTES_AVAIL_FIELD"'"' >> $scriptfile
else
echo 'DOFONTLINKS=0' >> $scriptfile
fi
echo 'LOOP_LIMIT='$LOOP_LIMIT >> "$scriptfile"
echo 'defaultinstalldir="'"$fulldir"'"' >> "$scriptfile"
echo 'defaultdir="/usr/bin"
# For echo without newline under BSD, set EB and EE variables
osname="UNKNOWN"
osversion="UNKNOWN"
EB="-n "
EE=""
if [ -x /bin/uname ]
then
osname=`/bin/uname -s`
# 64 bit IRIX6 returns IRIX64 for uname -s
firstfour=`echo "$osname" | sed -e '\''s/^\(....\).*$/\1/g'\''`
if [ "$firstfour" = "IRIX" ]
then
osname="IRIX"
fi
osversion=`/bin/uname -r`
check=`echo "$osversion" | egrep '\''^[0-9]\.[0-9]*'\''`
if [ "$check" != "" ]
then
# osmajorminor will be like "4.2". osmajor: "4". osminor:"2".
osmajorminor=`echo "$osversion" | sed -e '\''s/^\([0-9]\.[0-9]\).*/\1/'\''`
osmajor=`echo "$osversion" | sed -e '\''s/^\([0-9][0-9]*\).*/\1/'\''`
osminor=`echo "$osversion" | sed -e '\''s/^[0-9]\.\([0-9][0-9]*\).*/\1/'\''`
fi
fi
if [ $osname = "SunOS" ]
then
STDBINDIR="/usr/bin"
RETURNKEYNAME="Return"
if [ $osmajor -ge 5 ]
then
# For echo without newline under Sys V, set EB and EE variables
EB=""
EE="'\\\\'c"
PATH=/usr/sbin:/usr/bin:/bin:/usr/bin/X11:/usr/openwin/bin:/sbin:/usr/sbin:/etc:/usr/etc
else
# For echo without newline under BSD, set EB and EE variables
EB="-n "
EE=""
PATH=/usr/bin:/bin:/usr/bin/X11:/usr/openwin/bin:/sbin:/etc:/usr/etc
fi
elif [ $osname = "IRIX" ]
then
STDBINDIR="/usr/bin"
RETURNKEYNAME="Enter"
# For echo without newline under Sys V, set EB and EE variables
EB=""
EE="'\\\\'c"
PATH=/usr/sbin:/sbin:/usr/bin:/bin:/usr/bin/X11:/usr/openwin/bin:/etc:/usr/etc
elif [ $osname = "HP-UX" ]
then
STDBINDIR="/bin"
RETURNKEYNAME="Return"
# For echo without newline under Sys V, set EB and EE variables
EB=""
EE="'\\\\'c"
PATH=/usr/sbin:/sbin:/usr/bin:/bin:/usr/bin/X11:/etc:/usr/etc
fi
if [ "$osname" = "UNKNOWN" -o "$osversion" = "UNKNOWN" ]
then
echo ""
echo "Unrecognized operating system. Cannot make links."
exit 1
fi
MKDIR="$STDBINDIR/mkdir -p "
RMDIR="$STDBINDIR/rmdir "
LN="$STDBINDIR/ln -s"
RM="$STDBINDIR/rm -f"
ECHO="$STDBINDIR/echo"
SED="$STDBINDIR/sed"
LS="$STDBINDIR/ls"
EXPR="$STDBINDIR/expr"
PWDPROG="$STDBINDIR/pwd"
DIRCP="$STDBINDIR/cp -pr"
DIRRM="$STDBINDIR/rm -rf"
CP="$STDBINDIR/cp"
CD="cd"
CAT="$STDBINDIR/cat"
installdir="$defaultinstalldir"
umask 22
# Try to determine the parent directory to this launch script.
# Follow any symbolic links in thisscriptname.
thisscriptname=$0
while :
do
lsresult=`$LS -l $thisscriptname`
symlink=`$EXPR "$lsresult" : '\''.*>'\''.*`
if [ "$symlink" -gt 0 ]
then
oldscriptname="$thisscriptname"
thisscriptname=`$ECHO $lsresult|$SED -e '\''s/^.*-> *\(.*\) *$/\1/g'\''`
abspath_new=`$EXPR "$thisscriptname" : '\''^/'\''`
if [ $abspath_new != 1 ]
then
abspath_old=`$EXPR "$oldscriptname" : '\''^/'\''`
if [ $abspath_old != 1 ]
then
olddir=`$PWDPROG`
else
olddir=`$EXPR "$oldscriptname" : '\''\(.*\)/'\''`
fi
thisscriptname="$olddir/$thisscriptname"
fi
else
break
fi
done
# Determine directory containing this shell script.
scriptdir=`$EXPR $thisscriptname : '\''\(.*\)/'\''`
if [ "$scriptdir" = "" -o "$scriptdir" = "." ]
then
scriptdir=`$PWDPROG`
fi
# If scriptdir is /tmp, then do not try to override defaultdir.
if [ "$scriptdir" != "/tmp" ]
then
# Determine root directory for installation ($scriptdir/..).
parentdir=`$EXPR $scriptdir : '\''\(.*\)/'\''`
if [ "$parentdir" != "" ]
then
installdir="$parentdir"
fi
fi
echo ""
echo ""
echo "Enter the full path of the directory into which you want to create"
echo "symbolic links for programs and/or scripts"
echo $EB"[Press $RETURNKEYNAME for /usr/bin]: "$EE
read launchdir
if [ "$launchdir" = "" ]
then
launchdir="$defaultdir"
fi
if [ ! -d "$launchdir" ]
then
if $MKDIR $launchdir
then error=0
else error=1
fi
if [ $error != 0 ]
then
echo "Cannot create directory $launchdir"
echo "You must choose different options or change permissions"
echo "and then rerun this script."
exit 1
fi
chmod u+w "$launchdir"
chmod a+rx "$launchdir"
fi
if [ ! -w $launchdir ]
then
echo ""
echo ""
echo "You do not have permission to write to $launchdir."
echo "You must choose different options or change permissions"
echo "and then rerun this script."
exit 1
fi
makelinks_loop=0
while :
do
makelinks_loop=`expr $makelinks_loop + 1`
if [ $makelinks_loop -ge $LOOP_LIMIT ]
then
echo ""
echo "LOOP_LIMIT exceeded."
exit 1
fi
echo ""
echo ""
echo "This script will issue the following commands to install the"
echo "programs and/or scripts:"
echo ""
for bin in $binlinks ; do
# Next line extracts filename from full path
name=`expr //$bin : '\''.*/\(.*\)'\''`
abspath_bin=`$EXPR "$bin" : '\''^/'\''`
if [ $abspath_bin != 1 ] ; then
echo ${LN} "$installdir/$bin" "$launchdir/$name"
else
echo ${LN} "$bin" "$launchdir/$name"
fi
done
echo ""
echo $EB"OK to proceed (YES/NO)? "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" ] ; then
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
DOSYMLINKS=0
echo "Installation of programs and/or scripts cancelled."
exit 1
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
#BEGIN link_loop_func
funclist="$binlinks"
funcdir="$installdir"
for bin in $funclist ; do
# Next line extracts filename from full path
name=`expr //$bin : '\''.*/\(.*\)'\''`
if [ -f "$launchdir/$name" -o -d "$launchdir/$name" -o -h "$launchdir/$name" ]
then
overwritelink_loop=0
while :
do
overwritelink_loop=`expr $overwritelink_loop + 1`
if [ $overwritelink_loop -ge $LOOP_LIMIT ] ; then
echo ""
echo "LOOP_LIMIT exceeded."
eval ${ABORTCMD}
fi
echo ""
echo "File $launchdir/$name already exists. OK to replace"
echo $EB"(YES/NO)? "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" ] ; then
${RM} "$launchdir/$name"
abspath_bin=`expr "$bin" : '\''^/'\''`
if [ $abspath_bin != 1 ] ; then
${LN} "$funcdir/$bin" "$launchdir/$name"
else
${LN} "$bin" "$launchdir/$name"
fi
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
else
abspath_bin=`expr "$bin" : '\''^/'\''`
if [ $abspath_bin != 1 ] ; then
${LN} "$funcdir/$bin" "$launchdir/$name"
else
${LN} "$bin" "$launchdir/$name"
fi
fi
done
#END link_loop_func
echo ""
echo ""
echo "Installation of programs and/or scripts successful."
echo ""
if [ $DOFONTLINKS -eq 1 ] ; then
while : ; do
CREATED=0
DOFONTLINKS=0
NCNT=1
newfonthome=""
FLOK=1
fontsize=$PERPKGFONTSIZE
for fonth in $fonthome ; do
# WARNING: This prompt does not account for $NCNT packages. It will appear to ask the same question over and over.
echo ""
echo "Enter the full path of the directory in which you want"
echo "applications to look for fonts, or press $RETURNKEYNAME to accept"
echo "the default directory. The directory will be created if it does"
echo "not exist."
echo $EB"[Press $RETURNKEYNAME for $fonth]: "$EE
read launchdir
if [ "$launchdir" = "" ]
then
launchdir="$fonth"
fi
if [ ! -d "$launchdir" ]
then
if $MKDIR $launchdir
then error=0
else error=1
fi
if [ $error != 0 ]
then
echo "Cannot create directory $launchdir"
echo "You must choose different options or change permissions"
echo "and then rerun this script."
exit 1
fi
chmod u+w "$launchdir"
chmod a+rx "$launchdir"
CREATED=1
fi
if [ ! -w $launchdir ]
then
echo ""
echo ""
echo "You do not have permission to write to $launchdir."
echo "You must choose different options or change permissions"
echo "and then rerun this script."
exit 1
fi
# Get last line of df statement.
# Prepend X because if the mount point is too long,
# the df command will result in two lines, with the
# second line having blanks for the first field.
lastdfline="X"`$DFCMD $launchdir | sed -n '\''$p'\''`
# Determine if there is enough disk space for this install.
case $KBYTES_AVAIL_FIELD in
1)
disk_kbytes=`echo $lastdfline | awk '\''{ print $1 }'\''`
;;
2)
disk_kbytes=`echo $lastdfline | awk '\''{ print $2 }'\''`
;;
3)
disk_kbytes=`echo $lastdfline | awk '\''{ print $3 }'\''`
;;
4)
disk_kbytes=`echo $lastdfline | awk '\''{ print $4 }'\''`
;;
5)
disk_kbytes=`echo $lastdfline | awk '\''{ print $5 }'\''`
;;
*)
echo ""
echo "Internal error. Unable to determine disk space."
eval ${ABORTCMD}
;;
esac
font_kbytes=`expr "$fontsize" : '\''[ ]*\([^ ]*\)'\''`
fontsize=`expr "$fontsize" : '\''[ ]*[^ ]*\(.*\)'\''`
if [ $font_kbytes -ge $disk_kbytes ] ; then
echo ""
echo ""
echo "There is not enough disk space for the fonts."
echo "The installation you requested requires $font_kbytes kilobytes of disk space"
echo "and you currently have only $disk_kbytes kilobytes of available disk space"
echo "in directory $launchdir."
echo ""
echo "Choose a different location to install the fonts."
echo ""
echo ""
echo "Press $RETURNKEYNAME to continue"
read A
FLOK=0
break
fi
newfonthome="$newfonthome $launchdir"
done
if [ $FLOK -eq 1 ] ; then
break
fi
done # while
makelinks_loop=0
while :
do
makelinks_loop=`expr $makelinks_loop + 1`
if [ $makelinks_loop -ge $LOOP_LIMIT ]
then
echo ""
echo "LOOP_LIMIT exceeded."
exit 1
fi
echo ""
echo ""
echo "This script will issue the following commands to install the"
echo "fonts:"
echo ""
tfonthome=$newfonthome
tuprfiles=$uprfiles
for fonth in $newfonthome ; do
echo "${DIRCP} $installdir/$fontpattern $fonth"
#echo "${DIRRM} $installdir/$fontpattern"
uprf=`expr "$tuprfiles" : '\''[ ]*\([^ ]*\)[ ]*'\''`
tuprfiles=`expr "$tuprfiles" : '\''[ ]*[^ ]*\(.*\)'\''`
if [ ! -z "$uprf" ] ; then
name=`expr //$uprf : '\''.*/\(.*\)'\''`
if [ -z "$name" ] ; then
name="$uprf"
fi
abspath_bin=`expr "$uprf" : '\''^/'\''`
udir=`expr "$fonth" : '\''\(.*\)/'\''`
if [ $abspath_bin != 1 ] ; then
dir=`expr "$fontpattern" : '\''\(.*\)/'\''`
if [ -z "$dir" ] ; then
echo ${CP} "$installdir/$uprf" "$udir/$name"
else
echo ${CP} "$installdir/$dir/$uprf" "$udir/$name"
fi
else
echo ${CP} "$uprf" "$udir/$name"
fi
fi
# X font info files
fdir=`expr "$fontpattern" : '\''\(.*\)/'\''`
if [ -f $installdir/$fdir/fonts.dir ] ; then
echo ${CP} $installdir/$fdir/fonts.dir $fonth
fi
if [ -f $installdir/$fdir/fonts.alias ] ; then
echo ${CP} $installdir/$fdir/fonts.alias $fonth
fi
done
for fonth in $newfonthome ; do
if [ -d $fonth ] ; then
if [ $CREATED -ne 1 ] ; then
while : ; do
echo ""
echo ""
echo "*** Warning ***"
echo "Some fonts are already installed in $fonth. This script"
echo "checks the name of each font to be installed against those already"
echo "installed in $fonth. You may choose to skip the"
echo "installation of fonts whose names match, or you may replace matching"
echo "fonts. Fonts with no matching name will be installed regardless."
echo ""
echo $EB"Do you want to replace fonts with matching names (YES/NO)? "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" -o "$A" = "" ] ; then
SKIPFONTS=0
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
SKIPFONTS=1
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
fi
fi
done
echo ""
echo $EB"OK to proceed (YES/NO)? "$EE
read A
if [ "$A" = "YES" -o "$A" = "Y" -o "$A" = "yes" -o "$A" = "y" -o "$A" = "Yes" ] ; then
DOFONTLINKS=1
break
elif [ "$A" = "NO" -o "$A" = "N" -o "$A" = "no" -o "$A" = "n" -o "$A" = "No" ] ; then
DOFONTLINKS=0
echo "Installation of fonts cancelled."
break
else
echo ""
echo "You must specify YES or NO. Try again."
fi
done
if [ $DOFONTLINKS -eq 1 ] ; then
echo ""
tuprfiles=$uprfiles
fdir=`expr "$fontpattern" : '\''\(.*\)/'\''`
fpat=`expr "//$fontpattern" : '\''.*/\(.*\)'\''`
ferrs=""
fudirs=""
for fonth in $newfonthome ; do
# must list each subdirectory
allfonts="`(cd $installdir/$fdir ; echo $fpat)`"
for font in $allfonts ; do
if [ -d "$fonth/$font" ] ; then
if [ $SKIPFONTS -eq 1 ] ; then
echo "Skipping $font"
continue
else
if ${DIRRM} $fonth/$font ; then
echo "Replacing $font"
else
echo "Could not replace $font"
ferrs="$ferrs $font"
continue
fi
fi
fi
if ${DIRCP} $installdir/$fdir/$font $fonth ; then
# ${DIRRM} $installdir/$fdir/$font
:
else
ferrs="$ferrs $font"
fi
done
# X font info files
for fxinfo in fonts.dir fonts.alias ; do
if [ -f $installdir/$fdir/$fxinfo ] ; then
if [ -f $fonth/$fxinfo ] ; then
echo " *** Warning ***"
echo " Cannot copy new $fxinfo to destination directory."
echo " $fonth/$fxinfo already exists. The new file will"
echo " be left in $installdir/$fdir/$fxinfo."
echo " You will have to merge the files manually."
else
${CP} $installdir/$fdir/$fxinfo $fonth
fi
fi
done
# UPR Files
uprf=`expr "$tuprfiles" : '\''[ ]*\([^ ]*\)[ ]*'\''`
tuprfiles=`expr "$tuprfiles" : '\''[ ]*[^ ]*\(.*\)'\''`
udir=`expr "$fonth" : '\''\(.*\)/'\''`
if [ -z "$udir" ] ; then
udir="$fonth"
fi
fudirs="$fudirs $udir"
if [ ! -z "$uprf" ] ; then
name=`expr //$uprf : '\''.*/\(.*\)'\''`
if [ -z "$name" ] ; then
name="$uprf"
fi
if [ -f "$udir/$name" -o -h "$udir/$name" ] ; then
nf=1
nfxxx=`echo $nf | awk '\''{printf "%03d", $1 }'\''`
newname="`echo $name | sed -e s/.upr/_${nfxxx}.upr/`"
while [ -f "$udir/$newname" -o -h "$udir/$newname" ] ; do
newname="`echo $newname | sed -e s/_${nfxxx}.upr/.upr/`"
nf=`expr $nf + 1`
nfxxx=`echo $nf | awk '\''{printf "%03d", $1 }'\''`
newname="`echo $newname | sed -e s/.upr/_${nfxxx}.upr/`"
done
echo "$udir/$name already exists."
echo "The new resource file will be added to the directory with"
echo "the new name $newname."
name="$newname"
fi
abspath_bin=`expr "$uprf" : '\''^/'\''`
if [ $abspath_bin != 1 ] ; then
${CP} "$installdir/$uprf" "$udir/$name"
else
${CP} "$uprf" "$udir/$name"
fi
fi
done
# Concatanate final psresourcepath
resdir=""
for udir in $fudirs ; do
resdir="$resdir $udir"
done
if [ ! -z "$HOME" ] ; then
PSRES_PATH="`echo $PSRES_PATH | $SED -e s%$HOME/psres%'\''$HOME/psres'\''%`"
fi
psres="`echo $PSRES_PATH | tr : '\'' '\''`"
for udir in $resdir ; do
needit=1
for oldudir in $psres ; do
if [ "$udir" = "$oldudir" -o "$udir" = "$HOME/psres" ] ; then
needit=0
break
fi
done
if [ $needit -eq 1 ] ; then
PSRES_PATH="$udir:$PSRES_PATH"
fi
done
# Determine parent dir for psres_file and make, if necessary.
abspath=`expr $USER_INFO_FILE : '\''^/'\''`
if [ $abspath = 1 ] ; then
user_file="$USER_INFO_FILE"
else
user_file="$installdir/$USER_INFO_FILE"
fi
# Determine parent dir for psres_file and make, if necessary.
dir=`expr "$user_file" : '\''\(.*\)/'\''`
if [ ! -d "$dir" ] ; then
$MKDIR $dir
chmod u+w $dir
chmod a+rx $dir
fi
$RM -f "$user_file"
$CAT << INHERE > "$user_file"
# USER INFORMATION FILE FOR ADOBE SOFTWARE
#
# Adobe software has been installed at your site. To use it
# you must add the following configuration information to your
# environment (typically .login or .cshrc file).
#
# PostScript Resources
# Add the following directories to your PSRESOURCEPATH, and make
# sure that your PSRESOURCEPATH definition ends with "::"
# $PSRES_PATH
#
# For example, try the following if you use csh:
setenv PSRESOURCEPATH $PSRES_PATH::
#
# Some applications, such as Adobe Illustrator 5.5, provide
# a file called SITE_PSRESOURCEPATH, where the directories
# listed above can be included for all users of the application,
# so that individual modification of PSRESOURCEPATH is not
# required. All that is required is the use of "::", or
# for PSRESOURCEPATH to be left undefined. See your application
# user'\''s manual for details.
#
# Some applications have the directories:
# \$HOME/psres:/usr/psres
# as their built-in locations. These are the standard locations
# recommended by Adobe. If your application supports the standard
# locations, no modification or definition of PSRESOURCEPATH is
# required.
#
INHERE
echo ""
name=`expr //$user_file : '\''.*/\(.*\)'\''`
echo "********************* IMPORTANT *********************"
echo '\''A customized file "'\''$name'\''", which describes environment'\''
echo "settings that are essential for using the fonts you have"
echo "just installed, has been stored in"
echo "$dir. Please distribute this"
echo "file to any users of these fonts."
echo ""
if [ ! -z "$ferrs" ] ; then
echo ""
echo "***** NOTICE *****"
echo "The following fonts have been left in the installation"
echo "directory, because they did not install properly:"
for fff in $ferrs ; do
echo " $fff"
done
echo ""
else
echo ""
echo ""
echo "Installation of fonts successful."
echo ""
fi
fi
fi
echo ""
echo ""
echo "*** Installation complete ***"
echo ""
' >> "$scriptfile"
chmod 555 "$scriptfile"
fi
fi
# Skip the rest of the processing for package_num = 0
if [ "$package_num" = 0 ] ; then
continue
fi
if [ ! -d ${fulldir} ] ; then
echo ""
echo $EB"Your "$EE
if [ $USECD = 1 ] ; then
echo $EB"CD-ROM "$EE
else
echo $EB"tape "$EE
fi
if [ "$RHOST" = "" ] ; then
echo "could not be read from $DEVPATH."
else
echo "could not be read from $DEVPATH on $RHOST."
fi
eval "${RM} ${FILELIST}"
eval ${ABORTCMD}
fi
# Force proper permissions.
# Comment out for now. Assume permissions were set properly
# when application created the tree for each package.
#find $fulldir -type f -exec chmod a+r,a-w {} \;
#find $fulldir -type d -exec chmod 755 {} \;
#chown -Rf root.staff $fulldir
# Establish automatic symbolic links if so desired.
if [ $DOSYMLINKS = 1 ] ; then
binlinks=`eval echo '$PKG_'$package_num'_BINLINKS'`
ntokens=`echo $binlinks | wc -w`
if [ $ntokens -gt 0 ] ; then
for bin in $binlinks ; do
# Next line is equiv to csh: set name=$bin:t
name=`expr //$bin : '.*/\(.*\)'`
${RM} -f $AUTOSYMLINKDIR/$name
${LN} $fulldir/$bin $AUTOSYMLINKDIR/$name
done
fi
fi
# Automatically move fonts if so desired.
if [ $DOFONTLINKS = 1 ] ; then
fonthome=$NEWFONTHOME
tuprfiles=$uprfiles
fdir=`expr "$FONTPATTERN" : '\(.*\)/'`
fpat=`expr "//$FONTPATTERN" : '.*/\(.*\)'`
ferrs=""
FONTUDIRS=""
for fonth in $fonthome ; do
# must list each subdirectory
allfonts="`(cd $fulldir/$fdir ; echo $fpat)`"
for font in $allfonts ; do
if [ -d "$fonth/$font" ] ; then
if [ $SKIPFONTS -eq 1 ] ; then
echo "Skipping $font"
continue
else
if ${DIRRM} $fonth/$font ; then
echo "Replacing $font"
else
echo "Could not replace $font"
ferrs="$ferrs $font"
continue
fi
fi
fi
if ${DIRCP} $fulldir/$fdir/$font $fonth ; then
${DIRRM} $fulldir/$fdir/$font
:
else
ferrs="$ferrs $font"
fi
done
# X font info files
for fxinfo in fonts.dir fonts.alias ; do
if [ -f $fulldir/$fdir/$fxinfo ] ; then
if [ -f $fonth/$fxinfo ] ; then
echo " *** Warning ***"
echo " Cannot copy new $fxinfo to destination directory."
echo " $fonth/$fxinfo already exists. The new file will"
echo " be left in $fulldir/$fdir/$fxinfo."
echo " You will have to merge the files manually."
else
${CP} $fulldir/$fdir/$fxinfo $fonth
fi
fi
done
# UPR files
uprf=`expr "$tuprfiles" : '[ ]*\([^ ]*\)[ ]*'`
tuprfiles=`expr "$tuprfiles" : '[ ]*[^ ]*\(.*\)'`
udir=`expr "$fonth" : '\(.*\)/'`
if [ -z "$udir" ] ; then
udir="$fonth"
fi
FONTUDIRS="$FONTUDIRS $udir"
if [ ! -z "$uprf" ] ; then
name=`expr //$uprf : '.*/\(.*\)'`
if [ -z "$name" ] ; then
name="$uprf"
fi
if [ -f "$udir/$name" -o -h "$udir/$name" ] ; then
nf=1
nfxxx=`echo $nf | awk '{printf "%03d", $1 }'`
newname="`echo $name | sed -e s/.upr/_${nfxxx}.upr/`"
while [ -f "$udir/$newname" -o -h "$udir/$newname" ] ; do
newname="`echo $newname | sed -e s/_${nfxxx}.upr/.upr/`"
nf=`expr $nf + 1`
nfxxx=`echo $nf | awk '{printf "%03d", $1 }'`
newname="`echo $newname | sed -e s/.upr/_${nfxxx}.upr/`"
done
echo "$udir/$name already exists."
echo "The new resource file will be added to the directory with"
echo "the new name $newname."
name="$newname"
fi
abspath_bin=`expr "$uprf" : '^/'`
if [ $abspath_bin != 1 ] ; then
${CP} "$fulldir/$uprf" "$udir/$name"
else
${CP} "$uprf" "$udir/$name"
fi
fi
done
# Concatanate final psresourcepath
resdir=""
for udir in $FONTUDIRS ; do
resdir="$resdir $udir"
done
if [ ! -z "$HOME" ] ; then
PSRES_PATH="`echo $PSRES_PATH | $SED -e s%$HOME/psres%'$HOME/psres'%`"
fi
psres="`echo $PSRES_PATH | tr : ' '`"
for udir in $resdir ; do
needit=1
for oldudir in $psres ; do
if [ "$udir" = "$oldudir" -o "$udir" = "$HOME/psres" ] ; then
needit=0
break
fi
done
if [ $needit -eq 1 ] ; then
PSRES_PATH="$udir:$PSRES_PATH"
fi
done
# Determine parent dir for psres_file and make, if necessary.
abspath=`expr $USER_INFO_FILE : '^/'`
if [ $abspath = 1 ] ; then
user_file="$USER_INFO_FILE"
else
user_file="$fulldir/$USER_INFO_FILE"
fi
# Determine parent dir for psres_file and make, if necessary.
dir=`expr "$user_file" : '\(.*\)/'`
if [ ! -d "$dir" ] ; then
$MKDIR $dir
chmod u+w $dir
chmod a+rx $dir
fi
$RM -f "$user_file"
$CAT << INHERE > "$user_file"
# USER INFORMATION FILE FOR ADOBE SOFTWARE
#
# Adobe software has been installed at your site. To use it
# you must add the following configuration information to your
# environment (typically .login or .cshrc file).
#
# PostScript Resources
# Add the following directories to your PSRESOURCEPATH, and make
# sure that your PSRESOURCEPATH definition ends with "::"
# $PSRES_PATH
#
# For example, try the following if you use csh:
setenv PSRESOURCEPATH $PSRES_PATH::
#
# Some applications, such as Adobe Illustrator 5.5, provide
# a file called SITE_PSRESOURCEPATH, where the directories
# listed above can be included for all users of the application,
# so that individual modification of PSRESOURCEPATH is not
# required. All that is required is the use of "::", or
# for PSRESOURCEPATH to be left undefined. See your application
# user's manual for details.
#
# Some applications have the directories:
# \$HOME/psres:/usr/psres
# as their built-in locations. These are the standard locations
# recommended by Adobe. If your application supports the standard
# locations, no modification or definition of PSRESOURCEPATH is
# required.
#
INHERE
echo ""
name=`expr //$user_file : '.*/\(.*\)'`
echo "********************* IMPORTANT *********************"
echo 'A customized file "'$name'", which describes environment'
echo "settings that are essential for using the fonts you have"
echo "just installed, has been stored in"
echo "$dir. Please distribute this"
echo "file to any users of these fonts."
echo ""
if [ ! -z "$ferrs" ] ; then
echo ""
echo "***** NOTICE *****"
echo "The following fonts have been left in the installation"
echo "directory, because they did not install properly:"
for fff in $ferrs ; do
echo " $fff"
done
echo ""
fi
fi
# Put addlicense and requestlicense scripts in correct place.
lmfeature=`eval echo '$PKG_'$package_num'_LMFEATURE'`
lmversion=`eval echo '$PKG_'$package_num'_LMVERSION'`
lmquotes=`eval echo '$PKG_'$package_num'_LMQUOTES'`
pkgdesc=`eval echo '$PKG_'$package_num'_PKGDESC'`
pkgvers=`eval echo '$PKG_'$package_num'_PKGVERS'`
ntokens=`echo $lmfeature | wc -w`
if [ $ntokens -gt 0 ] ; then
licensedir=$fulldir/installscripts
if [ ! -d "$licensedir" ] ; then
$MKDIR "$licensedir"
fi
num=1
while [ $num -le $ntokens ] ; do
lmfeat=`eval 'echo $lmfeature | awk '\''{ print $'$num' }'\'`
lmvers=`eval 'echo $lmversion | awk '\''{ print $'$num' }'\'`
lmquot=`eval 'echo $lmquotes | awk '\''{ print $'$num' }'\'`
already_lmfeat=`echo $LMFEATURELIST | grep '^'"$lmfeat"'$'`
# Skip this if this feature has already been processed.
if [ "$already_lmfeat" != "" ] ; then
break
fi
LMFEATURELIST=$LMFEATURELIST$lmfeat'
'
# Copy addlicense script to ./installscripts and
# automatically make changes in place.
addlicensefname="$licensedir/$lmfeat"'.addlicense'
if [ -f "$addlicensefname" ] ; then
licensefname="$SECURITYFILE"
$CAT "$addlicensefname" \
| sed 's%^LM_LICENSE_FILE=""$%LM_LICENSE_FILE="'$licensefname'"%' \
| sed 's%^LM_REF_FILE=""$%LM_REF_FILE="'$LM_FILE'"%' \
| sed 's%^LM_DAEMON_DIR=""$%LM_DAEMON_DIR="'$DAEMONDIR'"%' \
| sed 's%^LM_FEATURE=""$%LM_FEATURE="'$lmfeat'"%' \
| sed 's%^LM_VERSION=""$%LM_VERSION="'$lmvers'"%' \
| sed 's%^LM_QUOTES=""$%LM_QUOTES="'$lmquot'"%' \
| sed 's%^PRODUCT_NAME=""$%PRODUCT_NAME="'"$pkgdesc"'"%' \
| sed 's%^PRODUCT_VERSION=""$%PRODUCT_VERSION="'"$pkgvers"'"%' \
> "$addlicensefname".temp
${MV} "$addlicensefname".temp "$addlicensefname"
chmod 555 $addlicensefname
fi
# Copy requestlicense script to ./installscripts and
# automatically make changes in place.
requestlicensefname="$licensedir/$lmfeat"'.requestlicense'
if [ -f "$requestlicensefname" ] ; then
licensefname="$SECURITYFILE"
$CAT "$requestlicensefname" \
| sed 's%^LM_LICENSE_FILE=""$%LM_LICENSE_FILE="'$licensefname'"%' \
| sed 's%^LM_REF_FILE=""$%LM_REF_FILE="'$LM_FILE'"%' \
| sed 's%^LM_DAEMON_DIR=""$%LM_DAEMON_DIR="'$DAEMONDIR'"%' \
| sed 's%^LM_FEATURE=""$%LM_FEATURE="'$lmfeat'"%' \
| sed 's%^LM_VERSION=""$%LM_VERSION="'$lmvers'"%' \
| sed 's%^LM_QUOTES=""$%LM_QUOTES="'$lmquot'"%' \
| sed 's%^PRODUCT_NAME=""$%PRODUCT_NAME="'"$pkgdesc"'"%' \
| sed 's%^PRODUCT_VERSION=""$%PRODUCT_VERSION="'"$pkgvers"'"%' \
> "$requestlicensefname".temp
${MV} "$requestlicensefname".temp "$requestlicensefname"
chmod 555 $requestlicensefname
fi
num=`expr $num + 1`
done
fi
# Write out PSRES_PATH to PSRES_FILE, if necessary.
psres_writefile=`eval echo '$PKG_'$package_num'_PSRES_WRITEFILE'`
if [ "$psres_writefile" = "" ] ; then
psres_writefile="$PSRES_WRITEFILE"
fi
if [ "$psres_writefile" = "y" ] ; then
abspath=`expr $PSRES_FILE : '^/'`
if [ $abspath = 1 ] ; then
psres_file="$PSRES_FILE"
else
psres_file=${fulldir}'/'"$PSRES_FILE"
fi
# Determine parent dir for psres_file and make, if necessary.
dir=`expr "$psres_file" : '\(.*\)/'`
if [ ! -d "$dir" ] ; then
$MKDIR $dir
fi
echo '#
# This file contains the default path which the application should use for
# finding its PostScript resources, such as fonts. The format is
# a single line beginning in column 1 of the form SITE_PSRESOURCEPATH=xxx,
# where xxx is a list of directories separated by colons.
# The application might add its own set of directories to this default
# path - consult the application launch script if you have questions.
# Users can override the default path by setting environment variable
# PSRESOURCEPATH to the list of directories to use for PostScript resources.
# If the user sets PSRESOURCEPATH, he is very much encouraged to include a
# double colon (::) in the path (e.g., /usr/lib/dps/fonts::) so that the
# application will still find its own default PostScript resources.
SITE_PSRESOURCEPATH='"$PSRES_PATH" > "$psres_file"
fi
# Write out LM_FILE with proper value for LM_LICENSE_FILE, if necessary.
lm_writefile=`eval echo '$PKG_'$package_num'_LM_WRITEFILE'`
if [ "$lm_writefile" = "" ] ; then
lm_writefile="$LM_WRITEFILE"
fi
if [ "$lm_writefile" = "y" ] ; then
abspath=`expr $LM_FILE : '^/'`
if [ $abspath = 1 ] ; then
lm_file="$LM_FILE"
else
lm_file=${fulldir}'/'"$LM_FILE"
fi
# Determine parent dir for lm_file and make, if necessary.
dir=`expr "$lm_file" : '\(.*\)/'`
if [ ! -d "$dir" ] ; then
$MKDIR $dir
fi
echo '#
# This file contains the path which the application should use for
# finding its license data file. The format is a single line beginning
# in column 1 of the form LM_LICENSE_FILE=xxx, where xxx is usually a
# single file name but can be a list of files separated by colons.
LM_LICENSE_FILE='"$SECURITYFILE" > "$lm_file"
fi
# Copy files such as README from CDROM to installation tree, if so requested.
cdrom_fromfiles=`eval echo '$PKG_'$package_num'_CDROM_FROMFILES'`
if [ "$cdrom_fromfiles" = "" ] ; then
# Backwards compatibility. Also accept CDROM_FROMFILE
cdrom_fromfiles=`eval echo '$PKG_'$package_num'_CDROM_FROMFILE'`
fi
cdrom_tofiles=`eval echo '$PKG_'$package_num'_CDROM_TOFILES'`
if [ "$cdrom_tofiles" = "" ] ; then
# Backwards compatibility. Also accept CDROM_TOFILE
cdrom_tofiles=`eval echo '$PKG_'$package_num'_CDROM_TOFILE'`
fi
ntokens_from=`echo $cdrom_fromfiles | wc -w`
ntokens_to=`echo $cdrom_tofiles | wc -w`
if [ $ntokens_from -eq $ntokens_to -a $ntokens_from -gt 0 ] ; then
i=1
for fromfile in $cdrom_fromfiles ; do
eval fromfile_$i=$fromfile
i=`expr $i + 1`
done
i=1
for tofile in $cdrom_tofiles ; do
eval tofile_$i=$tofile
i=`expr $i + 1`
done
i=1
while [ $i -le $ntokens_from ] ; do
eval fromfile=\$fromfile_$i
eval tofile=\$tofile_$i
if [ "$fromfile" != "" -a -f "$CDDIR/$fromfile" ] ; then
$RM "$fulldir/$tofile"
$CP -p "$CDDIR/$fromfile" "$fulldir/$tofile"
fi
i=`expr $i + 1`
done
fi
# Run the post-installation scripts, if present
script=`eval echo '$PKG_'$package_num'_SCRIPT'`
ntokens=`echo $script | wc -w`
if [ $ntokens -gt 0 ] ; then
script=$fulldir"/"$script
if [ ! -f "$script" ] ; then
echo ""
echo "Install script error:"
echo "Cannot find post-install script $script."
eval "${RM} ${FILELIST}"
eval ${ABORTCMD}
fi
if [ ! -x "$script" ] ; then
echo ""
echo "Install script error:"
echo "Cannot execute post-install script $script."
eval "${RM} ${FILELIST}"
eval ${ABORTCMD}
fi
if $script $fulldir $SECURITYFILE ; then error=0; else error=1; fi
if [ $error != 0 ] ; then
echo "Post installation script returned an unexpected error code!"
eval "${RM} ${FILELIST}"
eval ${ABORTCMD}
fi
fi
# Check for Motif keysyms
xkeysymdb=`eval echo '$PKG_'$package_num'_XKEYSYMDB'`
if [ "$xkeysymdb" = 1 ] ; then
# Write out XKeysymDB file.
if [ ! -d ${fulldir}/${XKEYSYMDBDIR} ] ; then
$MKDIR ${fulldir}/${XKEYSYMDBDIR}
fi
fixfile=${fulldir}/${XKEYSYMDBDIR}/${XKEYSYMDBFILE}
if [ -r ${fixfile} -a ! -w ${fixfile} ] ; then
echo ""
echo "${fixfile} already exists and this script cannot overwrite."
else
${RM} ${fixfile}
echo '!' > ${fixfile}
echo '! OSF Keysyms' >> ${fixfile}
echo '!' >> ${fixfile}
echo 'osfBackSpace :1004FF08' >> ${fixfile}
echo 'osfInsert :1004FF63' >> ${fixfile}
echo 'osfDelete :1004FFFF' >> ${fixfile}
echo 'osfCopy :1004FF02' >> ${fixfile}
echo 'osfCut :1004FF03' >> ${fixfile}
echo 'osfPaste :1004FF04' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfAddMode :1004FF31' >> ${fixfile}
echo 'osfPrimaryPaste :1004FF32' >> ${fixfile}
echo 'osfQuickPaste :1004FF33' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfPageUp :1004FF41' >> ${fixfile}
echo 'osfPageDown :1004FF42' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfEndLine :1004FF57' >> ${fixfile}
echo 'osfBeginLine :1004FF58' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfActivate :1004FF44' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfMenuBar :1004FF45' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfClear :1004FF0B' >> ${fixfile}
echo 'osfCancel :1004FF69' >> ${fixfile}
echo 'osfHelp :1004FF6A' >> ${fixfile}
echo 'osfMenu :1004FF67' >> ${fixfile}
echo 'osfSelect :1004FF60' >> ${fixfile}
echo 'osfUndo :1004FF65' >> ${fixfile}
echo '' >> ${fixfile}
echo 'osfLeft :1004FF51' >> ${fixfile}
echo 'osfUp :1004FF52' >> ${fixfile}
echo 'osfRight :1004FF53' >> ${fixfile}
echo 'osfDown :1004FF54' >> ${fixfile}
fi
if [ "$ALREADY_XKEYSYMDB" != 1 ] ; then
# check if XKeysymDB file contains osf bindings. If it doesn't then
# append them to /usr/openwin/lib/XKeysymDB file. On many systems
# XKeysymDB file contains keysym like osfXK_. These are wrong so
# just ignore them
if grepout=`grep -v '^osfXK' "$KEYSYMDBFILE" | grep '^osf'` ; then status=0; else status=1; fi
if [ $status != 0 ] ; then
echo ""
echo "It seems that your $KEYSYMDBFILE does not contain"
echo "OSF keysyms."
# The next line is equiv to csh: set dirpath=$KEYSYMDBFILE:h
dirpath=`expr $KEYSYMDBFILE : '\(.*\)/' \| $KEYSYMDBFILE`
if [ ! -w $KEYSYMDBFILE -o ! -w $dirpath ] ; then
echo "This script does not have permission to automatically alter $KEYSYMDBFILE."
echo "In case you see messages complaining about unknown OSF keysyms"
echo "at program startup, then append file ${fixfile}"
echo "to the end of $KEYSYMDBFILE."
else
echo "Appending additional keysyms to $KEYSYMDBFILE."
echo "Old $KEYSYMDBFILE file will be saved in ${KEYSYMDBFILE}.org"
$RM ${KEYSYMDBFILE}.org
$MV $KEYSYMDBFILE ${KEYSYMDBFILE}.org
$CAT ${KEYSYMDBFILE}.org ${fixfile} > $KEYSYMDBFILE
fi
else
echo ""
echo "It is good that you have OSF keysyms in $KEYSYMDBFILE."
echo "In case you see messages complaining about unknown OSF keysyms"
echo "at program startup, then append ${fixfile}"
echo "to the end of $KEYSYMDBFILE"
fi
ALREADY_XKEYSYMDB=1
fi
fi
done
echo ""
echo ""
lnks=`expr $ANYSYMLINKS + $ANYFONTLINKS`
if [ "$AUTOSYMLINK" = "makescript" -a $lnks -ge 1 ] ; then
echo "*** To complete installation, follow the remaining instructions ***"
echo "*** in the Getting Started Guide for this product. ***"
else
echo "*** Installation complete ***"
fi
echo ""
# Notify user that license keys are needed.
if [ $ALLOK1 = 1 -a $ANYSECURED = 1 ] ; then
echo ""
echo "You will need license activation keys for the following applications:"
echo ""
LMFEATURELIST=""
for package_num in ${PKGS_TO_INSTALL_TOTAL} ; do
lmfeat=`eval echo '$PKG_'$package_num'_LMFEATURE'`
ntokens=`echo $lmfeat | wc -w`
if [ $ntokens -gt 0 ] ; then
already_lmfeat=`echo $LMFEATURELIST | grep '^'"$lmfeat"'$'`
# Skip this if this feature has already been processed.
if [ "$already_lmfeat" != "" ] ; then
break
fi
LMFEATURELIST=$LMFEATURELIST$lmfeat'
'
echo " "$lmfeat
fi
done
echo ""
echo "Refer to the Getting Started guide for information on how to"
echo "obtain and install your license activation keys."
echo ""
echo "Do you want to run the demo version now (y/n)? \c"
read ans
fi
if [ $ans = 'y' -o $ans = 'Y' -o $ans = 'yes' -o $ans = 'Yes' ]; then
cd $HOME
su $USERNAME -c '/usr/bin/illustrator'
else
echo "To launch the demo version at a later time,"
echo "enter; illustrator from a command line."
echo "...exiting."
sleep 3
fi
${RM} $PKGLISTFILE
exit 0